CI #566
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
- v0.1.x | |
- v0.2.x | |
- v0.3.x | |
- v0.4.x | |
- v0.5.x | |
pull_request: | |
branches: | |
- main | |
- v0.1.x | |
- v0.2.x | |
- v0.3.x | |
- v0.4.x | |
- v0.5.x | |
schedule: | |
- cron: "58 7 * * 3" | |
jobs: | |
fmt: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: nightly | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
lint: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- "1.56" | |
- stable | |
- nightly | |
versions: | |
- "" | |
- "-Zminimal-versions" | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
components: clippy | |
- name: Update lockfile | |
env: | |
RUSTC_BOOTSTRAP: 1 | |
run: cargo generate-lockfile ${{ matrix.versions }} | |
- run: cargo check --package tzdb --all-targets | |
- run: cargo clippy --package tzdb --all-targets -- -D warnings | |
clippy-pedantic: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
components: clippy | |
- run: cargo clippy --package tzdb --all-targets -- -D clippy::pedantic | |
test: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
components: clippy | |
- run: cargo check --package tzdb --all-targets | |
- run: cargo clippy --package tzdb --all-targets -- -D warnings | |
- run: cargo test --package tzdb --all-targets | |
- run: cargo run --package current-time | |
- run: cd testing && cargo test | |
miri: | |
name: "Miri" | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: nightly | |
components: miri | |
- name: Test (tzdb) | |
run: cargo miri test --package tzdb --all-targets | |
- name: Test (testing) | |
run: cd testing && cargo miri test --package tzdb --all-targets | |
cross-miri: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- aarch64-unknown-linux-gnu | |
- i586-unknown-linux-gnu | |
- mipsel-unknown-linux-gnu | |
- mips64el-unknown-linux-gnuabi64 | |
- powerpc-unknown-linux-gnu | |
- powerpc64-unknown-linux-gnu | |
- powerpc64le-unknown-linux-gnu | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: nightly | |
components: miri | |
target: ${{ matrix.target }} | |
- name: Test | |
run: cargo miri test --package tzdb --target ${{ matrix.target }} | |
doc: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: nightly | |
components: rust-docs | |
- run: cargo doc --package tzdb --all-features --no-deps | |
env: | |
RUSTDOCFLAGS: -D warnings --cfg docsrs | |
audit: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
- name: Audit | |
uses: actions-rs/audit-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
build-cross: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- x86_64-unknown-freebsd | |
- x86_64-unknown-illumos | |
- x86_64-unknown-netbsd | |
- x86_64-linux-android | |
- i686-linux-android | |
- arm-linux-androideabi | |
- aarch64-linux-android | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
components: clippy | |
- name: Install "cross" | |
run: curl --location --silent --show-error --fail https://github.com/cargo-bins/cargo-quickinstall/releases/download/cross-0.2.5-x86_64-unknown-linux-gnu/cross-0.2.5-x86_64-unknown-linux-gnu.tar.gz | tar -xzvvf - -C $HOME/.cargo/bin | |
- run: cross check --target ${{ matrix.target }} --package tzdb --all-targets | |
- run: cross clippy --target ${{ matrix.target }} --package tzdb --all-targets -- -D warnings | |
- run: cross build --target ${{ matrix.target }} --package tzdb --lib | |
- run: cross build --target ${{ matrix.target }} --examples | |
build-cross-ios: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- aarch64-apple-ios-sim | |
- aarch64-apple-ios | |
- x86_64-apple-ios | |
runs-on: macos-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
components: clippy | |
- name: Install "cross" | |
run: curl --location --silent --show-error --fail https://github.com/cargo-bins/cargo-quickinstall/releases/download/cross-0.2.5-x86_64-apple-darwin/cross-0.2.5-x86_64-apple-darwin.tar.gz | tar -xzvvf - -C $HOME/.cargo/bin | |
- run: cross check --target ${{ matrix.target }} --package tzdb --all-targets | |
- run: cross clippy --target ${{ matrix.target }} --package tzdb --all-targets -- -D warnings | |
- run: cross build --target ${{ matrix.target }} --package tzdb --lib | |
- run: cross build --target ${{ matrix.target }} --examples | |
package: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
toolchain: stable | |
- run: cargo package --package tzdb | |
devskim: | |
name: DevSkim | |
runs-on: ubuntu-20.04 | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Run DevSkim scanner | |
uses: microsoft/DevSkim-Action@v1 | |
- name: Upload DevSkim scan results to GitHub Security tab | |
uses: github/codeql-action/upload-sarif@v2 | |
with: | |
sarif_file: devskim-results.sarif |