Skip to content

Add functionality for deploying/verifying/checking contracts issued using factories #387

Add functionality for deploying/verifying/checking contracts issued using factories

Add functionality for deploying/verifying/checking contracts issued using factories #387

Workflow file for this run

name: CI
env:
CI: true
on:
push:
branches:
- master
pull_request:
branches: ['*', '**/*']
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up environment
uses: ./.github/actions/setup
- name: Lint
run: yarn lint
test-fork:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install node
uses: actions/setup-node@v3
with:
node-version: 18.15
- name: Cache
uses: actions/cache@v3
id: cache
with:
path: '**/node_modules'
key: yarn-v1-${{ hashFiles('**/yarn.lock') }}
- name: Install
run: yarn --immutable
if: steps.cache.outputs.cache-hit != 'true'
- name: Forked Network Cache
# Hardhat caches node requests when working with forked networks (e.g. when querying contract code, storage,
# etc.) to save time in future runs. We cache this directory across runs.
# This cache action is special for a couple reasons, which originate from a) it not occupying much disk size,
# and b) the cache never being invalid (as past blockchain data is immutable). We therefore:
# - save the cache even on action failure (which may be caused due to a timeout), even if this could result in
# some wasted space. For this we use the always-upload-cache fork of the basic action.
# - use a different key on every single run, causing for the cache to always be saved.
# - use a wildcard as a restore key, which will cause all stored keys to match and the most recent one to be
# selected.
uses: pat-s/always-upload-cache@v3
id: cache-forked-network
with:
path: 'src/helpers/.hardhat/cache/hardhat-network-fork/**'
key: hardhat-network-fork-${{ github.run_number }}-${{ github.run_attempt }}
restore-keys: |
hardhat-network-fork-
- name: Prepare Config
run: yarn ci:prepare-config
env:
MAINNET_RPC_ENDPOINT: ${{ secrets.MAINNET_RPC_ENDPOINT }}
POLYGON_RPC_ENDPOINT: ${{ secrets.POLYGON_RPC_ENDPOINT }}
ARBITRUM_RPC_ENDPOINT: ${{ secrets.ARBITRUM_RPC_ENDPOINT }}
OPTIMISM_RPC_ENDPOINT: ${{ secrets.OPTIMISM_RPC_ENDPOINT }}
BINANCE_RPC_ENDPOINT: ${{ secrets.BINANCE_RPC_ENDPOINT }}
GNOSIS_RPC_ENDPOINT: ${{ secrets.GNOSIS_RPC_ENDPOINT }}
AVALANCHE_RPC_ENDPOINT: ${{ secrets.AVALANCHE_RPC_ENDPOINT }}
ZKEVM_RPC_ENDPOINT: ${{ secrets.ZKEVM_RPC_ENDPOINT }}
BASE_RPC_ENDPOINT: ${{ secrets.BASE_RPC_ENDPOINT }}
FRAXTAL_RPC_ENDPOINT: ${{ secrets.FRAXTAL_RPC_ENDPOINT }}
MODE_RPC_ENDPOINT: ${{ secrets.MODE_RPC_ENDPOINT }}
SEPOLIA_RPC_ENDPOINT: ${{ secrets.SEPOLIA_RPC_ENDPOINT }}
- name: Test
run: yarn test --bail