Dual verifier #4471
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: System contracts CI | |
on: | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install foundry-zksync | |
run: | | |
mkdir ./foundry-zksync | |
curl -LO https://github.com/matter-labs/foundry-zksync/releases/download/nightly/foundry_nightly_linux_amd64.tar.gz | |
tar zxf foundry_nightly_linux_amd64.tar.gz -C ./foundry-zksync | |
chmod +x ./foundry-zksync/forge ./foundry-zksync/cast | |
echo "$PWD/foundry-zksync" >> $GITHUB_PATH | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.0 | |
cache: yarn | |
- name: Build artifacts | |
working-directory: system-contracts | |
run: | | |
yarn install | |
yarn preprocess:system-contracts | |
forge build --zksync --zk-enable-eravm-extensions | |
yarn preprocess:bootloader | |
forge build --zksync --zk-enable-eravm-extensions | |
yarn build | |
- name: Create cache | |
uses: actions/cache/save@v3 | |
with: | |
key: artifacts-system-${{ github.sha }} | |
path: | | |
system-contracts/zkout | |
system-contracts/cache-forge | |
system-contracts/bootloader/build | |
system-contracts/artifacts-zk | |
system-contracts/cache-zk | |
system-contracts/typechain | |
system-contracts/contracts-preprocessed | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.0 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn | |
- name: Run lint | |
run: yarn lint:check | |
test-bootloader: | |
needs: [build, lint] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Install rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly-2023-04-17 | |
- name: Restore artifacts cache | |
uses: actions/cache/restore@v3 | |
with: | |
fail-on-cache-miss: true | |
key: artifacts-system-${{ github.sha }} | |
path: | | |
system-contracts/zkout | |
system-contracts/cache-forge | |
system-contracts/bootloader/build | |
system-contracts/artifacts-zk | |
system-contracts/cache-zk | |
system-contracts/typechain | |
system-contracts/contracts-preprocessed | |
- name: Run bootloader tests | |
run: | | |
cd system-contracts/bootloader/test_infra | |
cargo run | |
test-contracts: | |
needs: [build, lint] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.0 | |
cache: yarn | |
- name: Use era-test-node for testing | |
uses: dutterbutter/[email protected] | |
with: | |
releaseTag: v0.0.1-vm1.5.0 | |
- name: Install dependencies | |
run: yarn | |
- name: Restore artifacts cache | |
uses: actions/cache/restore@v3 | |
with: | |
fail-on-cache-miss: true | |
key: artifacts-system-${{ github.sha }} | |
path: | | |
system-contracts/zkout | |
system-contracts/cache-forge | |
system-contracts/bootloader/build | |
system-contracts/artifacts-zk | |
system-contracts/cache-zk | |
system-contracts/typechain | |
system-contracts/contracts-preprocessed | |
- name: Run tests | |
run: yarn sc test | |
- name: Print output logs of era_test_node | |
if: always() | |
run: cat era_test_node.log |