Skip to content

Commit

Permalink
Merge branch 'main' into chore-jrigada-move-zk-tests-to-different-files
Browse files Browse the repository at this point in the history
  • Loading branch information
Jrigada authored Dec 10, 2024
2 parents 52766aa + c9def31 commit 52efb77
Show file tree
Hide file tree
Showing 3 changed files with 216 additions and 150 deletions.
292 changes: 147 additions & 145 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,154 +1,156 @@
name: test

on:
push:
branches:
- main
- "*upstream*"
pull_request:
branches:
- main
- "*upstream*"
push:
branches:
- main
- "*upstream*"
pull_request:
branches:
- main
- "*upstream*"

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:
nextest:
uses: ./.github/workflows/nextest.yml
with:
profile: default
secrets: inherit

doctest:
runs-on: ubuntu-22.04
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-22.04
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
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
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-22.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
skip: "*.json"

crate-checks:
# ubuntu-22.04 runs out of disk space
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

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: Setup Git config
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "<>"
git config --global url."https://github.com/".insteadOf "[email protected]:"
- name: Run zk tests
env:
RUST_BACKTRACE: full
TEST_MAINNET_URL: http://localhost:8011
run: |
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-22.04
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
nextest:
uses: ./.github/workflows/nextest.yml
with:
profile: default
secrets: inherit

doctest:
runs-on: ubuntu-22.04
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-22.04
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
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
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-22.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
skip: "*.json"

crate-checks:
# ubuntu-22.04 runs out of disk space
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

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 anvil-zksync
uses: dutterbutter/[email protected]
with:
mode: fork
forkUrl: mainnet
log: info
logFilePath: anvil_zksync.log
target: x86_64-unknown-linux-gnu
releaseTag: v0.2.1

- name: Setup Git config
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "<>"
git config --global url."https://github.com/".insteadOf "[email protected]:"
- name: Run zk tests
env:
RUST_BACKTRACE: full
TEST_MAINNET_URL: http://localhost:8011
run: |
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-22.04
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
13 changes: 13 additions & 0 deletions crates/forge/tests/cli/cmd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3131,3 +3131,16 @@ forgetest_init!(gas_report_include_tests, |prj, cmd| {
.is_json(),
);
});

forgetest_init!(zk_can_init_with_zksync, |prj, cmd| {
cmd.args(["init", "--zksync", "--force"]).assert_success();

// Check that zkout/ is in .gitignore
let gitignore_path = prj.root().join(".gitignore");
assert!(gitignore_path.exists());
let gitignore_contents = std::fs::read_to_string(&gitignore_path).unwrap();
assert!(gitignore_contents.contains("zkout/"));

// Assert that forge-zksync-std is installed
assert!(prj.root().join("lib/forge-zksync-std").exists());
});
Loading

0 comments on commit 52efb77

Please sign in to comment.