Skip to content

V3 core deployment tooling (with static hook config assumptions) #6398

V3 core deployment tooling (with static hook config assumptions)

V3 core deployment tooling (with static hook config assumptions) #6398

Workflow file for this run

name: node
on:
# Triggers the workflow on push or pull request against main
push:
branches: [main]
pull_request:
branches: [v3]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
DEBUG: 'hyperlane:*'
jobs:
yarn-install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: yarn-cache
uses: actions/cache@v3
with:
path: |
**/node_modules
.yarn/cache
key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }}
- name: yarn-install
run: |
yarn install
CHANGES=$(git status -s --ignore-submodules)
if [[ ! -z $CHANGES ]]; then
echo "Changes found: $CHANGES"
git diff
exit 1
fi
yarn-build:
runs-on: ubuntu-latest
needs: [yarn-install]
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 18
- name: yarn-cache
uses: actions/cache@v3
with:
path: |
**/node_modules
.yarn/cache
key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }}
- name: build-cache
uses: actions/cache@v3
with:
path: ./*
key: ${{ github.sha }}
- name: core build
run: yarn workspace @hyperlane-xyz/core build
# lint-prettier:
# runs-on: ubuntu-latest
# needs: [yarn-install]
# steps:
# - uses: actions/checkout@v3
# - uses: actions/cache@v3
# with:
# path: |
# **/node_modules
# .yarn/cache
# key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }}
# - name: lint
# run: yarn lint
# - name: prettier
# run: |
# yarn prettier
# CHANGES=$(git status -s)
# if [[ ! -z $CHANGES ]]; then
# echo "Changes found: $CHANGES"
# exit 1
# fi
# test-ts:
# runs-on: ubuntu-latest
# needs: [yarn-build]
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - uses: actions/cache@v3
# with:
# path: ./*
# key: ${{ github.sha }}
# - name: sdk
# run: yarn workspace @hyperlane-xyz/sdk run test
# - name: helloworld
# run: yarn workspace @hyperlane-xyz/helloworld run test
# - name: token
# run: yarn workspace @hyperlane-xyz/hyperlane-token run test
# - name: infra
# run: yarn workspace @hyperlane-xyz/infra run test
# test-env:
# runs-on: ubuntu-latest
# needs: [yarn-build]
# strategy:
# matrix:
# environment: [testnet3, mainnet2]
# module: [ism, core, igp, ica, helloworld]
# steps:
# - uses: actions/checkout@v3
# - uses: actions/cache@v3
# with:
# path: ./*
# key: ${{ github.sha }}
# - name: Install Foundry
# uses: onbjerg/foundry-toolchain@v1
# - name: Test ${{ matrix.environment }} ${{ matrix.module }} deployment (check, deploy, govern, check again)
# run: cd typescript/infra && ./fork.sh ${{ matrix.environment }} ${{ matrix.module }}
test-sol:
env:
ETHERSCAN_API_KEY: ''
runs-on: ubuntu-latest
needs: [yarn-build]
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ./*
key: ${{ github.sha }}
- name: yarn-cache
uses: actions/cache@v3
with:
path: |
**/node_modules
.yarn/cache
key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }}
- name: Install Foundry
uses: onbjerg/foundry-toolchain@v1
- name: Install dependencies
run: cd solidity && forge install
- name: Forge build
run: cd solidity && forge build --build-info
#- name: gas
# run: yarn workspace @hyperlane-xyz/core run gas-ci
- name: Unit tests
run: yarn workspace @hyperlane-xyz/core run test
- name: Run Slither
uses: crytic/[email protected]
id: slither
with:
target: 'solidity/'
slither-config: 'solidity/slither.config.json'
sarif: results.sarif
fail-on: none
ignore-compile: true
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ steps.slither.outputs.sarif }}
coverage-sol:
runs-on: ubuntu-latest
needs: [yarn-build]
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ./*
key: ${{ github.sha }}
- name: yarn-cache
uses: actions/cache@v3
with:
path: |
**/node_modules
.yarn/cache
key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }}
- name: Install Foundry
uses: onbjerg/foundry-toolchain@v1
- name: Run tests with coverage
run: yarn coverage
env:
NODE_OPTIONS: --max_old_space_size=4096
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}