diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e214bb025..3d152fef9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,142 +1,141 @@ name: test on: - push: - branches: - - main - pull_request: - branches: - - main + push: + branches: + - main + pull_request: + branches: + - main concurrency: - cancel-in-progress: true - group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true + group: ${{github.workflow}}-${{github.ref}} env: - CARGO_TERM_COLOR: always - TARGET_RUST_VERSION: "nightly-2024-09-01" + CARGO_TERM_COLOR: always + TARGET_RUST_VERSION: "nightly-2024-09-01" jobs: - doctest: - runs-on: ubuntu-22.04-github-hosted-16core - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: ${{ env.TARGET_RUST_VERSION }} - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: cargo test - run: cargo test --doc -p forge - - clippy: - name: clippy - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@clippy - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - run: cargo clippy --workspace --all-targets --all-features - env: - RUSTFLAGS: -Dwarnings - - rustfmt: - runs-on: ubuntu-22.04-github-hosted-16core - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: ${{ env.TARGET_RUST_VERSION }} - components: rustfmt - - run: cargo fmt --all --check - - forge-fmt: - runs-on: ubuntu-22.04-github-hosted-16core - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: ${{ env.TARGET_RUST_VERSION }} - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: forge fmt - shell: bash - run: ./.github/scripts/format.sh --check - - codespell: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: codespell-project/actions-codespell@v2 - with: - skip: "*.json" - - crate-checks: - runs-on: ubuntu-22.04-github-hosted-16core - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: ${{ env.TARGET_RUST_VERSION }} - - uses: taiki-e/install-action@cargo-hack - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: cargo hack - run: cargo hack check - - zk-cargo-test: - runs-on: ubuntu-22.04-github-hosted-16core - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - submodules: recursive - ref: ${{ github.event.pull_request.head.sha }} - - - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: - toolchain: ${{ env.TARGET_RUST_VERSION }} - - - name: Install cargo-nextest - uses: taiki-e/install-action@nextest - - - name: Run era-test-node - uses: dutterbutter/era-test-node-action@v1 - with: - mode: fork - network: mainnet - log: info - logFilePath: era_test_node.log - target: x86_64-unknown-linux-gnu - releaseTag: v0.1.0-alpha.29 - - - name: Run zk tests - env: - RUST_BACKTRACE: full - TEST_MAINNET_URL: http://localhost:8011 - run: | - git config --global user.name "test-runner" - ZK_DEBUG_HISTORICAL_BLOCK_HASHES=5 cargo nextest run --package '*' --lib --test '*' --filter-expr 'test(~zk)' - - check-ci-install: - name: CI install - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Install foundry-zksync - run: cp ./install-foundry-zksync ./foundryup-zksync/* /tmp/ && cd /tmp && ./install-foundry-zksync - - name: Verify installation - run: forge --version + doctest: + runs-on: ubuntu-22.04-github-hosted-16core + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: ${{ env.TARGET_RUST_VERSION }} + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: cargo test + run: cargo test --doc -p forge + + clippy: + name: clippy + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@clippy + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - run: cargo clippy --workspace --all-targets --all-features + env: + RUSTFLAGS: -Dwarnings + + rustfmt: + runs-on: ubuntu-22.04-github-hosted-16core + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: ${{ env.TARGET_RUST_VERSION }} + components: rustfmt + - run: cargo fmt --all --check + + forge-fmt: + runs-on: ubuntu-22.04-github-hosted-16core + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: ${{ env.TARGET_RUST_VERSION }} + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: forge fmt + shell: bash + run: ./.github/scripts/format.sh --check + + codespell: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - uses: codespell-project/actions-codespell@v2 + with: + skip: "*.json" + + crate-checks: + runs-on: ubuntu-22.04-github-hosted-16core + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: ${{ env.TARGET_RUST_VERSION }} + - uses: taiki-e/install-action@cargo-hack + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: cargo hack + run: cargo hack check + + zk-cargo-test: + runs-on: ubuntu-22.04-github-hosted-16core + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + ref: ${{ github.event.pull_request.head.sha }} + + - name: Install Rust + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ env.TARGET_RUST_VERSION }} + + - name: Install cargo-nextest + uses: taiki-e/install-action@nextest + + - name: Run era-test-node + uses: dutterbutter/anvil-zksync-action@v1.1.0 + with: + mode: fork + forkUrl: mainnet + log: info + logFilePath: anvil-zksync.log + target: x86_64-unknown-linux-gnu + + - name: Run zk tests + env: + RUST_BACKTRACE: full + TEST_MAINNET_URL: http://localhost:8011 + run: | + git config --global user.name "test-runner" + ZK_DEBUG_HISTORICAL_BLOCK_HASHES=5 cargo nextest run --package '*' --lib --test '*' --filter-expr 'test(~zk)' + + check-ci-install: + name: CI install + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install foundry-zksync + run: cp ./install-foundry-zksync ./foundryup-zksync/* /tmp/ && cd /tmp && ./install-foundry-zksync + - name: Verify installation + run: forge --version