Skip to content

Merge pull request #376 from bulwark-security/run-tests-before-packaging #774

Merge pull request #376 from bulwark-security/run-tests-before-packaging

Merge pull request #376 from bulwark-security/run-tests-before-packaging #774

Workflow file for this run

name: Rust
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
fmt:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
with:
toolchain: stable
components: rustfmt
- run: cargo fmt --check
- name: Ensure non-dirty repo
run: git diff --exit-code
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
with:
toolchain: stable
components: clippy
target: wasm32-wasi
- name: Install protobuf compiler
run: /usr/bin/sudo /usr/bin/apt install -y protobuf-compiler
- name: Rust cache
uses: swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
- name: Run clippy
run: cargo clippy --no-deps --workspace --all-targets -- --deny warnings
- name: Ensure non-dirty repo
run: git diff --exit-code
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
with:
toolchain: stable
components: clippy
target: wasm32-wasi
- name: Install protobuf compiler
run: /usr/bin/sudo /usr/bin/apt install -y protobuf-compiler
- name: Rust cache
uses: swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
- name: Build Documentation
run: cargo doc --all --no-deps
test:
name: Test suite
strategy:
fail-fast: false
matrix:
rust_version:
- stable
os:
- ubuntu-latest
redis-version:
- "6.2.14"
- "7.2.4"
envoy-version:
- "1.22"
- "1.26"
- "1.30"
exclude:
- redis-version: "6.2.14"
envoy-version: "1.22"
- redis-version: "6.2.14"
envoy-version: "1.30"
runs-on: ${{ matrix.os }}
services:
redis:
image: redis:${{ matrix.redis-version }}
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
echo:
image: hashicorp/http-echo
ports:
- 5678:5678
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Launch Envoy service
run: /usr/bin/docker run -d --name envoy --network "${{ job.container.network }}" --network-alias envoy -p 4080:4080 -e GITHUB_ACTIONS=true -e CI=true -v "./tests/gha_envoy.yaml":"/etc/envoy/envoy.yaml" envoyproxy/envoy:v${{ matrix.envoy-version }}-latest envoy -l debug -c /etc/envoy/envoy.yaml
- name: Install Rust
uses: dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
with:
toolchain: ${{ matrix.rust_version }}
components: clippy
target: wasm32-wasi
- name: Install protobuf compiler
run: /usr/bin/sudo /usr/bin/apt install -y protobuf-compiler
- name: Rust cache
uses: swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
- name: List Docker services
run: /usr/bin/docker ps
- name: Run bulwark tests
uses: clechasseur/rs-cargo@5cd564345ef5b1136392a1dc943b33a3a888b873 # v2.0.2
with:
command: test
args: -p bulwark-cli -p bulwark-build -p bulwark-config -p bulwark-decision -p bulwark-ext-processor -p bulwark-host -p bulwark-sdk -p bulwark-sdk-macros -- --include-ignored
- name: Envoy logs
run: /usr/bin/docker logs envoy
- name: Kill Envoy service
run: /usr/bin/docker kill envoy
- name: Ensure non-dirty repo
run: git diff --exit-code