Skip to content

CI

CI #669

Workflow file for this run

name: CI
on:
push:
branches:
- v0.7.x
pull_request:
branches:
- v0.7.x
schedule:
- cron: "58 7 * * 3"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rustfmt
- run: cargo fmt --all -- --check
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain:
- "1.81"
- stable
- nightly
versions:
- ""
- "-Zminimal-versions"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
components: clippy
- name: Update lockfile
env:
RUSTC_BOOTSTRAP: 1
run: cargo generate-lockfile ${{ matrix.versions }}
- run: cargo check --workspace --all-targets
- run: cargo clippy --workspace --all-targets -- -D warnings
clippy-pedantic:
runs-on: ubuntu-latest
strategy:
matrix:
package:
- tzdb
- tzdb_data
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy
- run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D clippy::pedantic
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy
- run: cargo check --workspace --all-targets
- run: cargo clippy --workspace --all-targets -- -D warnings
- run: cargo test --workspace --all-targets
- run: cargo run --package current-time
- run: cd testing && cargo test
miri:
name: "Miri"
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: miri
- name: Test (tzdb)
run: cargo miri test --workspace --all-targets
- name: Test (testing)
run: cd testing && cargo miri test --workspace --all-targets
cross-miri:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- aarch64-unknown-linux-gnu
- i586-unknown-linux-gnu
- powerpc-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- powerpc64le-unknown-linux-gnu
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: miri
target: ${{ matrix.target }}
- name: Test
run: cargo miri test --workspace --target ${{ matrix.target }}
doc:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: miri
- run: cargo doc --workspace --all-features --no-deps
env:
RUSTDOCFLAGS: -Z unstable-options --generate-link-to-definition --cfg=docsrs -D warnings
audit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Audit
uses: EmbarkStudios/cargo-deny-action@v2
devskim:
name: DevSkim
runs-on: ubuntu-latest
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@v3
with:
sarif_file: devskim-results.sarif
typos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master
feature-powerset:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
- name: Install cargo-hack
uses: taiki-e/install-action@cargo-hack
- name: Check feature-powerset
run: cargo hack --workspace --feature-powerset check