Implement IANA normalizer baked data provider #791
Workflow file for this run
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: Rust - Continuous integration | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| concurrency: | |
| # Allow one run at a time for PRs, but multiple for other invocations | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| RUSTFLAGS: -Dwarnings | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: lint | |
| - name: Install cargo-workspaces | |
| run: cargo install cargo-workspaces | |
| - name: Check rustfmt | |
| run: cargo fmt --all -- --check | |
| - name: Check clippy | |
| run: cargo ws exec cargo clippy --all-features --all-targets | |
| - name: Check clippy (No features) | |
| run: cargo ws exec cargo clippy --no-default-features --all-targets | |
| msrv: | |
| name: MSRV | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| # Get the rust_version from the Cargo.toml | |
| - name: Get rust_version | |
| id: rust_version | |
| run: echo "rust_version=$(grep '^rust-version' Cargo.toml -m 1 | cut -d' ' -f3 | tr -d '"')" >> $GITHUB_OUTPUT | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ steps.rust_version.outputs.rust_version }} | |
| - name: Check compilation | |
| run: cargo check --all-features --all-targets | |
| build-test: | |
| name: Test (${{ matrix.rust.name }}, ${{ matrix.os }}) | |
| strategy: | |
| matrix: | |
| rust: | |
| # TODO: possibly add the MSRV here | |
| - { version: stable, name: stable } | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust.version }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: build-test | |
| - name: Cargo build --all-features | |
| run: cargo build --quiet --all-features | |
| - name: Test --all-features | |
| run: cargo test --all-features | |
| feature-test: | |
| name: Test feature matrix | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: features-test | |
| - name: Install cargo-all-features | |
| uses: baptiste0928/cargo-install@v3.3.0 | |
| with: | |
| crate: cargo-all-features | |
| - name: Test all features | |
| run: cargo test-all-features | |
| ffi: | |
| name: Test FFI (${{ matrix.rust.name }}, ${{ matrix.os }}) | |
| strategy: | |
| matrix: | |
| rust: | |
| - { version: stable, name: stable } | |
| os: [ubuntu-latest] # Todo: potentially add more if we add cpp tests | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust.version }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: ffi | |
| - name: Cargo build | |
| run: cargo build -p temporal_capi | |
| - name: Regen | |
| run: cargo run -p diplomat-gen | |
| - name: Check diff | |
| run: git diff --exit-code | |
| # Todo: eventually we should check in bindings and test them | |
| - name: Makefile tests | |
| run: cd temporal_capi/cpp_tests && make | |
| docs: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTDOCFLAGS: -D warnings | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: docs | |
| - name: Generate documentation | |
| run: cargo doc -v --document-private-items --all-features |