Add global cheatcodes example and extend appendix #9106
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: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
test-forge-unit-and-integration: | |
name: Test Forge / Unit and Integration Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- run: cargo test --release --lib -p forge | |
- run: cargo test --release --bin snforge | |
- run: cargo test --release integration -p forge | |
build-test-forge-e2e-nextest-archive: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- name: Install nextest | |
uses: taiki-e/install-action@nextest | |
- name: Build and archive tests | |
run: cargo nextest archive --release -p forge --archive-file nextest-archive.tar.zst | |
- name: Upload archive to workflow | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nextest-archive | |
path: nextest-archive.tar.zst | |
test-forge-e2e: | |
name: Test Forge / E2E Tests | |
runs-on: ubuntu-latest | |
needs: build-test-forge-e2e-nextest-archive | |
strategy: | |
matrix: | |
partition: [1, 2, 3, 4, 5, 6, 7, 8] | |
steps: | |
- name: Extract branch name | |
if: github.event_name != 'pull_request' | |
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV | |
- name: Extract branch name on pull request | |
if: github.event_name == 'pull_request' | |
run: echo "BRANCH_NAME=$(echo $GITHUB_HEAD_REF)" >> $GITHUB_ENV | |
- name: Extract repo name and owner | |
if: github.event_name != 'pull_request' | |
run: echo "REPO_NAME=$(echo ${{ github.repository }}.git)" >> $GITHUB_ENV | |
- name: Extract repo name and owner on pull request | |
if: github.event_name == 'pull_request' | |
run: echo "REPO_NAME=$(echo ${{ github.event.pull_request.head.repo.full_name }}.git)" >> $GITHUB_ENV | |
- name: Print repo name | |
run: echo 'The repo name is' $REPO_NAME | |
- name: Get branch name | |
run: echo 'The branch name is' $BRANCH_NAME | |
- name: Install cairo-profiler | |
run: | | |
curl -L https://raw.githubusercontent.com/software-mansion/cairo-profiler/main/scripts/install.sh | sh | |
- name: Install cairo-coverage | |
run: | | |
curl -L https://raw.githubusercontent.com/software-mansion/cairo-coverage/main/scripts/install.sh | sh | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- uses: taiki-e/install-action@nextest | |
- uses: actions/download-artifact@v4 | |
with: | |
name: nextest-archive | |
- name: nextest partition ${{ matrix.partition }}/8 | |
run: cargo nextest run --partition 'count:${{ matrix.partition }}/8' --archive-file 'nextest-archive.tar.zst' e2e | |
test-coverage: | |
name: Test coverage | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
with: | |
scarb-version: "2.8.3" | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- name: Install cairo-coverage | |
run: | | |
curl -L https://raw.githubusercontent.com/software-mansion/cairo-coverage/main/scripts/install.sh | sh | |
- run: cargo test --package forge --features scarb_2_8_3 --test main e2e::coverage | |
test-contracts-artifacts: | |
name: Test contracts artifacts | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
with: | |
scarb-version: "2.8.3" | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- run: | | |
cargo test --package forge --features scarb_2_8_3 e2e::contract_artifacts | |
cargo test --package scarb-api --features scarb_2_8_3 get_starknet_artifacts_path | |
test-forge-runner: | |
name: Test Forge Runner | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- run: cargo test --release -p forge_runner | |
test-cheatnet: | |
name: Test Cheatnet | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- name: Run Cheatnet tests | |
run: cargo test --release -p cheatnet | |
test-forge-scarb-plugin: | |
name: Test Forge Scarb Plugin | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- name: Run Forge Scarb Plugin tests | |
run: cargo test --release -p snforge-scarb-plugin | |
test-cast: | |
name: Test Cast | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- name: Install starknet-devnet-rs | |
run: ./scripts/install_devnet.sh | |
- uses: software-mansion/[email protected] | |
with: | |
scarb-version: "2.7.0" | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- name: Run tests | |
run: cargo test --release -p sncast | |
test-conversions: | |
name: Test Conversions | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- name: Run tests | |
run: cargo test --release -p conversions | |
test-shared: | |
name: Test Shared | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- run: cargo test --release -p shared | |
test-scarb-api: | |
name: Test Scarb Api | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- run: cargo test --release -p scarb-api | |
scarbfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: software-mansion/[email protected] | |
- name: Check cairo files format | |
run: | | |
output=$(find . -type f -name "Scarb.toml" -execdir sh -c ' | |
echo "Running \"scarb fmt\" in directory: $PWD" | |
scarb fmt --check | |
' \;) | |
echo "$output" | |
if grep -iq "Diff" <<< "$output"; then | |
exit 1 | |
fi | |
exit 0 | |
rustfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- name: Check formatting | |
run: cargo fmt --check | |
clippy: | |
runs-on: ubuntu-latest | |
env: | |
# Make sure CI fails on all warnings - including Clippy lints. | |
RUSTFLAGS: "-Dwarnings" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- run: cargo lint | |
build-docs: | |
name: Test Building Docs | |
runs-on: ubuntu-latest | |
env: | |
MDBOOK_VERSION: 0.4.31 | |
steps: | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 | |
- uses: actions/checkout@v4 | |
- uses: software-mansion/[email protected] | |
- uses: software-mansion/setup-universal-sierra-compiler@v1 | |
- name: Install mdBook | |
run: | | |
cargo install --version ${MDBOOK_VERSION} mdbook | |
- name: Install mdBook Link-Check | |
run: | | |
cargo install mdbook-linkcheck | |
- name: Build with mdBook | |
run: mdbook build | |
working-directory: ./docs | |
- name: Install Forge | |
run: | | |
cargo install --path crates/forge --locked | |
- name: Verify Cairo listings | |
run: | | |
./scripts/verify_cairo_listings.sh | |
typos: | |
name: Check typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: typos-action | |
uses: crate-ci/[email protected] |