build(deps): bump the dependencies group across 3 directories with 15 updates #4153
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 CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| request: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| run: ${{ steps.filter.outputs.run }} | |
| steps: | |
| - uses: envoyproxy/toolshed/actions/github/should-run@d10938876b114aa2a001b43b43158f1bf7008f1a | |
| id: filter | |
| with: | |
| config: | | |
| paths: | |
| - BINS_VERSION.txt | |
| - 'rust/**' | |
| - '.github/workflows/rust.yml' | |
| test: | |
| runs-on: ubuntu-24.04 | |
| needs: request | |
| if: >- | |
| github.repository_owner == 'envoyproxy' | |
| && fromJSON(needs.request.outputs.run || 'false') | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| toolchain: | |
| - stable | |
| - nightly | |
| test-type: | |
| - coverage | |
| - integration | |
| name: test (${{ matrix.toolchain }}, ${{ matrix.test-type }}) | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Install cargo-tarpaulin | |
| if: matrix.test-type == 'coverage' | |
| run: cargo install cargo-tarpaulin | |
| - name: Run coverage | |
| if: matrix.test-type == 'coverage' | |
| run: | | |
| cargo tarpaulin --config tarpaulin.toml --features test --lib --bins | |
| working-directory: rust | |
| - name: Run glint integration tests | |
| if: matrix.test-type == 'integration' | |
| run: | | |
| cargo test --package glint --test integration_test --verbose | |
| working-directory: rust | |
| build: | |
| needs: request | |
| if: >- | |
| always() | |
| && fromJSON(needs.request.outputs.run || 'false') | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| matrix: | |
| include: | |
| - arch: amd64 | |
| runs-on: ubuntu-24.04 | |
| rust-target: x86_64-unknown-linux-gnu | |
| - arch: arm64 | |
| runs-on: ubuntu-24.04-arm | |
| rust-target: aarch64-unknown-linux-gnu | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - name: Install Rust toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| toolchain: stable | |
| - name: Build glint | |
| run: cargo build --release -p glint | |
| working-directory: rust | |
| - name: Get glint version | |
| id: version | |
| run: | | |
| cd rust/glint | |
| VERSION=$(cargo metadata --no-deps --format-version=1 | jq -r '.packages[0].version') | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| - name: Strip binary | |
| run: strip rust/target/release/glint | |
| - name: Rename binary with version and architecture | |
| run: | | |
| cp rust/target/release/glint glint-${{ steps.version.outputs.version }}-${{ matrix.arch }} | |
| - name: Upload glint binary | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: rust-artifacts-glint-${{ steps.version.outputs.version }}-${{ matrix.arch }} | |
| path: glint-${{ steps.version.outputs.version }}-${{ matrix.arch }} | |
| retention-days: 30 | |
| - name: Build echo | |
| run: cargo build --release -p toolshed-echo | |
| working-directory: rust | |
| - name: Get echo version | |
| id: echo-version | |
| run: | | |
| cd rust/echo | |
| VERSION=$(cargo metadata --no-deps --format-version=1 | jq -r '.packages[0].version') | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| - name: Strip echo binary | |
| run: strip rust/target/release/toolshed-echo | |
| - name: Rename echo binary with version and architecture | |
| run: | | |
| cp rust/target/release/toolshed-echo echo-${{ steps.echo-version.outputs.version }}-${{ matrix.arch }} | |
| - name: Upload echo binary | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: rust-artifacts-echo-${{ steps.echo-version.outputs.version }}-${{ matrix.arch }} | |
| path: echo-${{ steps.echo-version.outputs.version }}-${{ matrix.arch }} | |
| retention-days: 30 | |
| status: | |
| runs-on: ubuntu-24.04 | |
| if: >- | |
| always() | |
| && github.event_name == 'pull_request' | |
| name: Rust | |
| needs: | |
| - request | |
| - test | |
| - build | |
| steps: | |
| - run: | | |
| if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" || "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then | |
| echo "One or more jobs failed or were cancelled" | |
| exit 1 | |
| fi | |
| echo "All required jobs passed or were skipped" |