diff --git a/.github/actions/setup-tools/action.yml b/.github/actions/setup-tools/action.yml index 2d4e6d6004..2acedaf288 100644 --- a/.github/actions/setup-tools/action.yml +++ b/.github/actions/setup-tools/action.yml @@ -10,6 +10,10 @@ inputs: description: 'Whether to setup scarb' required: false default: 'true' + scarb-version: + description: 'Optional: Scarb version to install. If not set, uses version from .tool-versions' + required: false + default: '' setup-usc: description: 'Whether to setup universal-sierra-compiler' required: false @@ -24,6 +28,8 @@ runs: - uses: software-mansion/setup-scarb@v1 if: ${{ inputs.setup-scarb == 'true' }} + with: + scarb-version: ${{ inputs.scarb-version }} - uses: software-mansion/setup-universal-sierra-compiler@v1 if: ${{ inputs.setup-usc == 'true' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b8387aac1..055cffda17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -256,6 +256,16 @@ jobs: - name: Run Data Transformer tests run: cargo test --profile ci -p data-transformer + test-forge-oracles: + name: Test Oracles in Forge + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: ./.github/actions/setup-tools + with: + scarb-version: '2.13.1' + - run: cargo test --profile ci -p forge --features run_test_for_scarb_since_2_13 e2e::oracles + test-forge-scarb-plugin: name: Test Forge Scarb Plugin runs-on: ubuntu-latest diff --git a/crates/forge/Cargo.toml b/crates/forge/Cargo.toml index d003ce2f56..7f7425027f 100644 --- a/crates/forge/Cargo.toml +++ b/crates/forge/Cargo.toml @@ -11,6 +11,7 @@ no_scarb_installed = [] non_exact_gas_assertions = [] skip_test_for_only_latest_scarb = [] skip_test_for_scarb_since_2_11 = [] +run_test_for_scarb_since_2_13 = [] test_for_multiple_scarb_versions = [] cairo-native = ["cheatnet/cairo-native", "scarb-api/cairo-native"] diff --git a/crates/forge/tests/e2e/oracles.rs b/crates/forge/tests/e2e/oracles.rs index dc0a7b703b..c8dc88c9c0 100644 --- a/crates/forge/tests/e2e/oracles.rs +++ b/crates/forge/tests/e2e/oracles.rs @@ -2,21 +2,14 @@ use crate::e2e::common::runner::{ BASE_FILE_PATTERNS, Package, setup_package_with_file_patterns, test_runner, }; use indoc::indoc; -use scarb_api::version::scarb_version; use shared::test_utils::output_assert::assert_stdout_contains; -fn scarb_supports_oracles() -> bool { - scarb_version().unwrap().scarb >= semver::Version::parse("2.12.3+nightly-2025-10-21").unwrap() -} - +#[cfg_attr( + not(feature = "run_test_for_scarb_since_2_13"), + ignore = "Skipping test because feature skip_test_for_scarb_2_13 enabled" +)] #[test] fn wasm() { - // TODO use feature here - if !scarb_supports_oracles() { - eprintln!("skipping because scarb does not fully support oracles"); - return; - } - let temp = setup_package_with_file_patterns( Package::Name("wasm_oracles".to_string()), &[BASE_FILE_PATTERNS, &["*.wasm"]].concat(),