Skip to content

fix ci

fix ci #441

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches:
- "main"
pull_request:
jobs:
build:
runs-on: "ubuntu-latest"
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Install dependencies
run: forge soldeer install
- name: Build
run: forge build
test:
runs-on: "ubuntu-latest"
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Install dependencies
run: forge soldeer install
- name: Test
run: forge test
spelling:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v5
- name: Check for typos
uses: crate-ci/typos@v1.39.0
formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Check formatting
run: forge fmt --check
coverage:
runs-on: "ubuntu-latest"
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Install dependencies
run: forge soldeer install
- name: Generate coverage
run: forge coverage --ir-minimum --no-match-coverage 'script|test' --report lcov
- uses: kefasjw/lcov-pull-request-report@v1
with:
lcov-file: lcov.info
github-token: ${{ secrets.GITHUB_TOKEN }}
slither:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Install dependencies
run: forge soldeer install
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: 3.14
- name: Install Slither
run: pip install slither-analyzer
- name: Run Slither
run: slither --config ./slither.config.json .
integration:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
- name: Install dependencies
run: forge soldeer install
- name: Build contracts
run: forge build
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.20.0
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: lts/Jod
cache: pnpm
- name: Install dependencies
run: pnpm install -r --frozen-lockfile
- name: Run anvil
run: pnpm anvil &
- name: Run bundler
run: pnpm bundler &
- name: Deploy contracts and a test account
run: pnpm deploy-test
- name: Run integration tests
run: pnpm test
zksync-os:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1.5.0
with:
# zksync-os-server's zkos-l1-state.json doesn't work on latest version of anvil
version: v1.3.4
- name: Install dependencies
run: forge soldeer install
- name: Build contracts
run: forge build
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.20.0
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: lts/Jod
cache: pnpm
- name: Install dependencies
run: |
pnpm install -r --frozen-lockfile
cd ${{ github.workspace }}/..
git clone https://github.com/eth-infinitism/account-abstraction
git clone https://github.com/matter-labs/zksync-os-server
- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
workspaces: "../zksync-os-server -> target"
- name: Run server
run: |
cd ${{ github.workspace }}/../zksync-os-server
cargo build --release --bin zksync-os-server
anvil --load-state ./local-chains/v31/zkos-l1-state.json --port 8545 &> anvil.log &
cargo run --release --bin zksync-os-server &> server.log &
- name: Deploy entrypoint
run: |
cd ${{ github.workspace }}/../account-abstraction
git checkout v0.8.0
sed -i "60a zksyncos: { url: 'http://localhost:3050', accounts: ['0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110'] }," hardhat.config.ts
npm install -g yarn
yarn install
yarn deploy --network zksyncos
- name: Fund wallet
run: |
# Rich account
PRIVATE_KEY=0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110
# send 10 ETH
TO=0xa0Ee7A142d267C1f36714E4a8F75612F20a79720
cast send --private-key ${PRIVATE_KEY} --rpc-url http://localhost:3050 ${TO} --value 10000000000000000000
- name: Deploy contracts and a test account
run: pnpm deploy-test:zksync-os
- name: Run bundler
run: |
pnpm bundler:zksync-os &> bundler.log &
sleep 5
- name: Run integration tests
run: pnpm test:zksync-os
- name: Print anvil logs
if: always()
run: cat ${{ github.workspace }}/../zksync-os-server/anvil.log
- name: Print server logs
if: always()
run: cat ${{ github.workspace }}/../zksync-os-server/server.log
- name: Print bundler logs
if: always()
run: cat bundler.log