Skip to content

build(deps): bump the dependencies group across 3 directories with 15 updates #4153

build(deps): bump the dependencies group across 3 directories with 15 updates

build(deps): bump the dependencies group across 3 directories with 15 updates #4153

Workflow file for this run

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"