(feat): Added tracking structs as part of equality analysis #53679
This file contains hidden or 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] | |
| pull_request: | |
| merge_group: | |
| types: [checks_requested] | |
| jobs: | |
| ensure-no_std: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly-2025-12-05 | |
| targets: wasm32-unknown-unknown | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: | | |
| cd ensure-no_std && cargo build | |
| syntax-codegen-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| components: rustfmt | |
| toolchain: nightly-2025-12-05 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo test --profile=ci-dev -p cairo-lang-syntax-codegen | |
| parallel-tests: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| args: | |
| - cairo-lang-casm --features=serde,parity-scale-codec,schemars | |
| - cairo-lang-casm --no-default-features --features=serde,parity-scale-codec | |
| - cairo-lang-compiler | |
| - cairo-lang-debug | |
| - cairo-lang-defs | |
| - cairo-lang-diagnostics | |
| - cairo-lang-doc | |
| - cairo-lang-eq-solver | |
| - cairo-lang-executable | |
| - cairo-lang-executable-plugin | |
| - cairo-lang-execute-utils | |
| - cairo-lang-filesystem | |
| - cairo-lang-formatter | |
| - cairo-lang-lowering | |
| - cairo-lang-parser | |
| - cairo-lang-plugins | |
| - cairo-lang-primitive-token | |
| - cairo-lang-proc-macros | |
| - cairo-lang-project | |
| - cairo-lang-runnable-utils | |
| - cairo-lang-runner | |
| - cairo-lang-semantic | |
| - cairo-lang-sierra | |
| - cairo-lang-sierra-ap-change | |
| - cairo-lang-sierra-gas | |
| - cairo-lang-sierra-generator | |
| - cairo-lang-sierra-to-casm | |
| - cairo-lang-sierra-type-size | |
| - cairo-lang-starknet-classes | |
| - cairo-lang-starknet | |
| - cairo-lang-syntax | |
| - cairo-lang-test-plugin | |
| - cairo-lang-test-runner | |
| - cairo-lang-test-utils | |
| - cairo-lang-utils --features=serde,parity-scale-codec,schemars,testing,tracing | |
| - cairo-lang-utils --no-default-features --features=serde,parity-scale-codec | |
| - tests | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| # Allow only the heavy 'tests' leg to upload the cache; all legs still restore it. | |
| save-if: ${{ matrix.args == 'tests' }} | |
| # Validates that the number of commands in the matrix is equal to the number of crates in the | |
| # workspace + 2 (for the crates which have multiple commands) - 1 (for the syntax-codegen-test) | |
| - run: | | |
| CRATES_COUNT=$(find {crates/*,tests}/Cargo.toml | wc -l) | |
| COMMANDS_COUNT=${{ strategy.job-total }} | |
| if [ $((CRATES_COUNT + 2 - 1)) -ne $COMMANDS_COUNT ]; then | |
| echo "CRATES_COUNT: $CRATES_COUNT" | |
| echo "COMMANDS_COUNT: $COMMANDS_COUNT" | |
| echo "The number of commands in the matrix is not equal to the number of crates in the workspace + 1" | |
| exit 1 | |
| fi | |
| - run: | | |
| cargo test --profile=ci-dev -p ${{ matrix.args }} | |
| test: | |
| if: ${{ always() }} | |
| needs: [parallel-tests, syntax-codegen-test] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - if: needs.parallel-tests.result == 'success' && needs.syntax-codegen-test.result == 'success' | |
| run: exit 0 | |
| - if: needs.parallel-tests.result != 'success' || needs.syntax-codegen-test.result != 'success' | |
| run: exit 1 | |
| rustfmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| components: rustfmt | |
| toolchain: nightly-2025-12-05 | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: scripts/rust_fmt.sh --check | |
| # Checks that all .cairo files in the repo are formatted correctly. | |
| cairofmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: scripts/cairo_fmt.sh --check | |
| # Checks that all Cairo code tests run correctly. | |
| cairotest: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: | | |
| cargo run --profile=release --bin cairo-test -- corelib/ | |
| - run: | | |
| cargo run --profile=release --bin cairo-test -- tests/bug_samples --starknet | |
| - run: | | |
| cargo run --profile=release --bin cairo-test -- crates/cairo-lang-starknet/cairo_level_tests/ --starknet | |
| # Checks that error codes are not duplicated. | |
| error-code-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: > | |
| scripts/validate_error_codes.sh | |
| # Check that doc comment blocks end with punctuation. | |
| doc-comment-punctuation: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: > | |
| scripts/check_comment_punctuation.py crates | |
| # Check for unnecessary dependencies. | |
| udeps: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Machete | |
| uses: bnjbvr/cargo-machete@v0.9.1 | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| components: clippy | |
| toolchain: nightly-2025-12-05 | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: > | |
| scripts/clippy.sh | |
| taplo: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@taplo | |
| - run: > | |
| scripts/taplo.sh | |
| typos: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: crate-ci/typos@v1.43.0 | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly-2025-12-05 | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: > | |
| scripts/docs.sh | |
| sierra-updated-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: '0' | |
| - run: > | |
| scripts/sierra_update_check.sh origin/$GITHUB_BASE_REF origin/$GITHUB_HEAD_REF |