Merge pull request #255 from macisamuele/RUSTSEC-2026-0009 #786
This file contains hidden or 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: check | |
| on: | |
| push: | |
| branches: | |
| - "*" | |
| tags: | |
| - "*" | |
| pull_request: | |
| branches: | |
| - "*" | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: stable | |
| override: true | |
| components: clippy, rustfmt | |
| - name: Check format | |
| run: cargo fmt --all -- --check | |
| - name: Check fix | |
| run: cargo fix && cargo fix | |
| - name: Check with clippy | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| - name: Build Release | |
| run: cargo build --release | |
| - name: Run tests | |
| run: cargo test | |
| # Test Issue #237: verify build without metadata feature | |
| - name: Test build without metadata feature | |
| run: cargo check --no-default-features --features "git2 tzdb build" | |
| - name: Run tests without metadata feature | |
| run: cargo test --no-default-features --features "git2 tzdb build" | |
| # Run examples with debug | |
| - name: Run examples with debug | |
| run: cargo run --example builtin_fn | |
| # example_shadow check | |
| - name: Check example_shadow | |
| run: | | |
| cargo fmt --all -- --check | |
| cargo clippy --all-targets --all-features -- -D warnings | |
| cargo run | |
| working-directory: ./example_shadow | |
| # example_shadow_hook check | |
| - name: Check example_shadow_hook | |
| run: | | |
| cargo fmt --all -- --check | |
| cargo clippy --all-targets --all-features -- -D warnings | |
| cargo run | |
| working-directory: ./example_shadow_hook | |
| # example_wasm check | |
| - uses: jetli/wasm-pack-action@v0.4.0 | |
| with: | |
| version: latest | |
| - name: Setup wasm-pack | |
| run: | | |
| cargo b | |
| wasm-pack build --target bundler | |
| wasm-pack build --target web | |
| working-directory: ./example_wasm | |
| - uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| target: riscv32imc-unknown-none-elf | |
| toolchain: stable | |
| components: rust-src | |
| - name: Run no_std example | |
| run: | | |
| cargo fmt --all -- --check | |
| cargo clippy --release -- -D warnings | |
| cargo b --release | |
| working-directory: ./example_no_std | |
| # build on nightly | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| override: true | |
| components: clippy | |
| - name: Build on nightly | |
| run: | | |
| cargo build --release | |
| cargo +nightly clippy --all-features -- -D warnings -A clippy::literal_string_with_formatting_args | |
| test: | |
| strategy: | |
| matrix: | |
| rust: [ stable, beta, nightly ] | |
| runs-on: ubuntu-latest | |
| needs: [ build ] | |
| steps: | |
| - name: Setup Rust | |
| uses: hecrj/setup-rust-action@v2 | |
| with: | |
| rust-version: ${{ matrix.rust }} | |
| - name: Install Tarpaulin | |
| uses: actions-rs/install@v0.1 | |
| with: | |
| crate: cargo-tarpaulin | |
| version: 0.31.5 | |
| use-tool-cache: true | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Test | |
| run: | | |
| cargo test --all-features | |
| cargo test --examples | |
| - name: Coverage | |
| if: matrix.rust == 'stable' | |
| run: cargo tarpaulin -o Lcov --output-dir ./coverage | |
| - name: Coveralls | |
| if: matrix.rust == 'stable' | |
| continue-on-error: true | |
| uses: coverallsapp/github-action@master | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| publish-crate: | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| runs-on: ubuntu-latest | |
| needs: [ test ] | |
| steps: | |
| - name: Set up Rust | |
| uses: hecrj/setup-rust-action@v2 | |
| - uses: actions/checkout@v6 | |
| - name: Publish | |
| shell: bash | |
| run: | | |
| cargo publish --token ${{ secrets.CRATES_GITHUB_TOKEN }} |