Initial changes + ffi workflow #1
Workflow file for this run
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: L1 Deploy Scripts Tests CI | |
env: | |
ANVIL_PRIVATE_KEY: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" | |
ANVIL_RPC_URL: "http://127.0.0.1:8545" | |
on: | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Use Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.18.0 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn | |
- name: Build artifacts | |
working-directory: ./l1-contracts | |
run: forge build | |
- name: Build system-contract artifacts | |
run: yarn sc build | |
- name: Create cache | |
uses: actions/cache/save@v3 | |
with: | |
key: artifacts-l1-contracts-foundry-${{ github.sha }} | |
path: | | |
l1-contracts/cache | |
l1-contracts/out | |
system-contracts/artifacts-zk | |
system-contracts/bootloader/build | |
system-contracts/cache-zk | |
system-contracts/contracts-preprocessed | |
system-contracts/typechain | |
scripts: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Restore artifacts cache | |
uses: actions/cache/restore@v3 | |
with: | |
fail-on-cache-miss: true | |
key: artifacts-l1-contracts-foundry-${{ github.sha }} | |
path: | | |
l1-contracts/cache | |
l1-contracts/out | |
system-contracts/artifacts-zk | |
system-contracts/bootloader/build | |
system-contracts/cache-zk | |
system-contracts/contracts-preprocessed | |
system-contracts/typechain | |
- name: Use Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
- name: Copy configs from template | |
working-directory: ./l1-contracts | |
run: cp -r deploy-script-config-template script-config | |
- name: Run anvil | |
run: | | |
anvil --silent & | |
ANVIL_READY=0 | |
for i in {1..10}; do | |
if curl -s -o /dev/null $ANVIL_RPC_URL -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_chainId","id":1}'; then | |
echo "Anvil is ready" | |
ANVIL_READY=1 | |
break | |
else | |
echo "Waiting for Anvil to become ready..." | |
sleep 1 | |
fi | |
done | |
if [ $ANVIL_READY -ne 1 ]; then | |
echo "Anvil failed to become ready after 10 attempts." | |
exit 1 | |
fi | |
test-ffi: | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Use Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.0 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn | |
- name: Restore artifacts cache | |
uses: actions/cache/restore@v3 | |
with: | |
fail-on-cache-miss: true | |
key: artifacts-l1-${{ github.sha }} | |
path: | | |
l1-contracts/artifacts | |
l1-contracts/cache | |
l1-contracts/typechain | |
- name: Run tests | |
run: yarn l1 test:ffi | |