feat: justfile works with Linux now #563
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: 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: 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: 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 | |
- 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: Run clippy | |
run: cargo clippy --locked --all --all-targets -- -D warnings |