feat: batch multiplex #17
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: Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
- development | |
pull_request: | |
jobs: | |
build: | |
name: Build and test | |
runs-on: ubuntu-latest | |
env: | |
ARBITRUM_RPC_URL: ${{ secrets.ARBITRUM_RPC_URL }} | |
AVALANCHE_RPC_URL: ${{ secrets.AVALANCHE_RPC_URL }} | |
BSC_RPC_URL: ${{ secrets.BSC_RPC_URL }} | |
FANTOM_RPC_URL: ${{ secrets.FANTOM_RPC_URL }} | |
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }} | |
OPTIMISM_RPC_URL: ${{ secrets.OPTIMISM_RPC_URL }} | |
POLYGON_RPC_URL: ${{ secrets.POLYGON_RPC_URL }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Add foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: Build solution | |
run: yarn build | |
- name: Lint typescript | |
run: yarn lint:ts | |
- name: Lint solidity | |
run: yarn lint:contracts | |
- name: Run prettier | |
run: yarn prettier:ci | |
- name: Check dependent packages have consistent versions | |
run: yarn deps_versions:ci | |
- name: Check diff in docs | |
run: yarn diff_md_docs:ci | |
- name: Check for broken links in markdown files | |
run: yarn test:links | |
- name: Test doc generation | |
run: yarn test:generate_docs:ci | |
- name: Test @0x/contracts-* | |
run: | | |
yarn wsrun \ | |
-p @0x/contracts-multisig \ | |
-p @0x/contracts-utils \ | |
-p @0x/contracts-exchange-libs \ | |
-p @0x/contracts-erc721 \ | |
-p @0x/contracts-erc1155 \ | |
-p @0x/contracts-asset-proxy \ | |
-p @0x/contracts-broker \ | |
-p @0x/contracts-zero-ex \ | |
-m --serial -c test:ci | |
- name: Test local @0x/contracts-* | |
run: | | |
yarn wsrun \ | |
-p @0x/contracts-test-utils \ | |
-p @0x/contract-addresses \ | |
-p @0x/contract-artifacts \ | |
-p @0x/contract-wrappers-test \ | |
-p @0x/order-utils \ | |
-m --serial -c test:ci | |
# NOTE: disabled as ZRXToken.sol did not compile with the latest forge. | |
# TODO: re-enable once the issue is resolved. | |
- name: Run Forge build for erc20 | |
working-directory: contracts/erc20 | |
run: | | |
forge --version | |
forge build --sizes --skip ZRXToken | |
# - name: Run Forge tests for erc20 | |
# working-directory: contracts/erc20 | |
# run: | | |
# forge test -vvv --gas-report | |
# - name: Run Forge coverage for erc20 | |
# working-directory: contracts/erc20 | |
# run: | | |
# forge coverage --report summary --report lcov | |
# - name: Upload the coverage report to Coveralls | |
# uses: coverallsapp/github-action@master | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
# base-path: ./contracts/erc20/ | |
# path-to-lcov: ./contracts/erc20/lcov.info | |
- name: Run Forge build for zero-ex | |
working-directory: contracts/zero-ex | |
run: | | |
forge --version | |
forge build --sizes | |
- name: Run Forge tests for zero-ex | |
working-directory: contracts/zero-ex | |
run: | | |
forge test -vvv --gas-report | |
- name: Run Forge coverage for zero-ex | |
working-directory: contracts/zero-ex | |
run: | | |
forge coverage --report summary --report lcov | |
- name: Upload the coverage report to Coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
base-path: ./contracts/zero-ex/ | |
path-to-lcov: ./contracts/zero-ex/lcov.info | |
- name: Check coverage threshold | |
uses: VeryGoodOpenSource/very_good_coverage@v2 | |
with: | |
path: ./contracts/zero-ex/lcov.info | |
min_coverage: 6.98 | |
exclude: '**/tests' | |
- name: Run Forge build on governance contracts | |
working-directory: ./contracts/governance | |
run: | | |
forge --version | |
forge build --sizes | |
# TODO: re-enable once the issue is resolved. | |
# - name: Run Forge tests on governance contracts | |
# working-directory: ./contracts/governance | |
# run: | | |
# forge test -vvv --gas-report | |
# - name: Run Forge coverage on governance contracts | |
# working-directory: ./contracts/governance | |
# run: | | |
# forge coverage --report lcov | |
# - name: Upload the coverage report to Coveralls | |
# uses: coverallsapp/github-action@master | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
# base-path: ./contracts/governance/ | |
# path-to-lcov: ./contracts/governance/lcov.info |