feat: fix ci and tests #553
Workflow file for this run
This file contains 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: | |
- "**" | |
jobs: | |
unit-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run non-integration tests | |
run: cargo test --lib --release --features mock_prover -- --skip test_light_client_prover_talking | |
integration-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Expose github actions runtime | |
uses: crazy-max/ghaction-github-runtime@v1 | |
- name: Build the docker-compose stack | |
run: | | |
cat > ci/cache.json <<EOF | |
{ | |
"target": { | |
"validator": { | |
"cache-from": ["type=gha,scope=validator"], | |
"cache-to": ["type=gha,mode=max,scope=validator"], | |
"output": ["type=docker"] | |
}, | |
"bridge-0": { | |
"cache-from": ["type=gha,scope=bridge-0"], | |
"cache-to": ["type=gha,mode=max,scope=bridge-0"], | |
"output": ["type=docker"] | |
}, | |
"bridge-1": { | |
"cache-from": ["type=gha,scope=bridge-1"], | |
"cache-to": ["type=gha,mode=max,scope=bridge-1"], | |
"output": ["type=docker"] | |
}, | |
"light-0": { | |
"cache-from": ["type=gha,scope=light-0"], | |
"cache-to": ["type=gha,mode=max,scope=light-0"], | |
"output": ["type=docker"] | |
} | |
} | |
} | |
EOF | |
cd ci && docker buildx bake --file docker-compose.yml --file cache.json --load | |
- name: Run the docker-compose stack | |
run: docker compose -f ci/docker-compose.yml up --no-build -d | |
- name: Wait for bridge node 0 to start | |
run: | | |
while ! docker compose -f ci/docker-compose.yml logs bridge-0 | grep -q 'Configuration finished. Running a bridge node'; do | |
sleep 1 | |
done | |
- name: Wait for bridge node 1 to start | |
run: | | |
while ! docker compose -f ci/docker-compose.yml logs bridge-1 | grep -q 'Configuration finished. Running a bridge node'; do | |
sleep 1 | |
done | |
- name: Show and follow logs of light node 0 | |
run: docker compose -f ci/docker-compose.yml logs -f light-0 | |
- name: Wait for light node 0 to start | |
run: | | |
while ! docker compose -f ci/docker-compose.yml logs light-0 | grep -q 'Configuration finished. Running a light node'; do | |
sleep 1 | |
done | |
- name: Run integration tests | |
run: cargo test -p prism-tests --lib --release --features mock_prover | |
unused-deps: | |
runs-on: ubuntu-latest | |
name: unused dependencies | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v3 | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
- name: Install cargo-udeps | |
uses: taiki-e/cache-cargo-install-action@v1 | |
with: | |
tool: [email protected] | |
- name: Check for unused dependencies | |
run: cargo +nightly udeps --all-features --all-targets | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
components: clippy | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run clippy | |
run: cargo clippy --locked --all --all-targets -- -D warnings |