Skip to content

CI

CI #566

Workflow file for this run

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