[3/x] Add note script compilation test #1054
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- next | |
paths-ignore: | |
- "*.md" | |
- "*.txt" | |
- "docs" | |
pull_request: | |
paths-ignore: | |
- "*.md" | |
- "*.txt" | |
- "docs" | |
jobs: | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
rustup update --no-self-update | |
rustc --version | |
- name: Cache Cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# Use a common cache for the basic compilation/formatter/clippy checks | |
shared-key: ${{ github.workflow }}-shared | |
save-if: ${{ github.ref == 'refs/heads/next' }} | |
- name: Install cargo-make | |
run: | | |
if ! cargo make --version 2>/dev/null; then | |
cargo install cargo-make --force | |
fi | |
- name: Clippy | |
run: | | |
cargo make clippy | |
check_format: | |
name: check formatting | |
runs-on: ubuntu-latest | |
# Run this job after the linter, so the cache is hot | |
needs: [lint] | |
# But run this check even if the lint check failed | |
if: ${{ always() }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
rustup update --no-self-update | |
rustc --version | |
- name: Cache Cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# Use a common cache for the basic compilation/formatter/clippy checks | |
shared-key: ${{ github.workflow }}-shared | |
# But do not save this cache, just use it | |
save-if: false | |
- name: Install cargo-make | |
run: | | |
if ! cargo make --version 2>/dev/null; then | |
cargo install cargo-make --force | |
fi | |
- name: Check Formatting | |
run: | | |
cargo make check-format | |
unit_tests: | |
name: midenc unit tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
rustup update --no-self-update | |
rustc --version | |
- name: Cache Cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# NOTE: We use a different cache for the tests, so they can be run in parallel, but we | |
# also share the cache for the tests for efficiency | |
shared-key: ${{ github.workflow }}-shared-tests | |
save-if: ${{ github.ref == 'refs/heads/next' }} | |
- name: Install cargo-make | |
run: | | |
if ! cargo make --version 2>/dev/null; then | |
cargo install cargo-make --force | |
fi | |
- name: Check | |
# We run `cargo check` to verify that the workspace compiles correctly before attempting | |
# to execute the tests from each crate. This produces easier to read output if a compilation | |
# error occurs | |
run: | | |
cargo make check --tests | |
- name: Test | |
run: | | |
cargo make test -E 'not (package(miden-integration-tests) or package(cargo-miden))' | |
midenc_integration_tests: | |
name: midenc integration tests | |
runs-on: ubuntu-latest | |
# We only want to run the integration tests if the unit tests pass, and that has the added | |
# benefit that we can re-use the cache from the unit test job for all integration tests | |
needs: [unit_tests] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
rustup update --no-self-update | |
rustc --version | |
- name: Cache Cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: ${{ github.workflow }}-shared-tests | |
# Do not persist the cache, leave that to the unit tests, we just use the cache here | |
save-if: false | |
- name: Install cargo-make | |
run: | | |
if ! cargo make --version 2>/dev/null; then | |
cargo install cargo-make --force | |
fi | |
- name: Test | |
run: | | |
cargo make test -E 'package(miden-integration-tests)' | |
cargo_miden_integration_tests: | |
name: cargo-miden integration tests | |
runs-on: ubuntu-latest | |
# We only want to run the integration tests if the unit tests pass, and that has the added | |
# benefit that we can re-use the cache from the unit test job for all integration tests | |
needs: [unit_tests] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
rustup update --no-self-update | |
rustc --version | |
- name: Cache Cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: ${{ github.workflow }}-shared-tests | |
# Do not persist the cache, leave that to the unit tests, we just use the cache here | |
save-if: false | |
- name: Install cargo-make | |
run: | | |
if ! cargo make --version 2>/dev/null; then | |
cargo install cargo-make --force | |
fi | |
- name: Test | |
run: | | |
cargo make test -E 'package(cargo-miden)' |