The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/.github/workflows/node.yml

151 lines
3.6 KiB

name: node
on:
# Triggers the workflow on push or pull request against main
push:
branches: [main]
pull_request:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
yarn-install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: remove submodule locks
run: git submodule foreach rm yarn.lock
- uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-cache4-${{ hashFiles('./yarn.lock') }}
- name: yarn-install
# Check out the lockfile from main, reinstall, and then
# verify the lockfile matches what was committed.
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
- name: remove submodule locks
run: git submodule foreach rm yarn.lock
- name: yarn-cache
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-cache4-${{ hashFiles('./yarn.lock') }}
- name: build-cache
uses: actions/cache@v3
with:
path: ./*
key: ${{ github.sha }}
- name: build
run: yarn build
lint-prettier:
runs-on: ubuntu-latest
needs: [yarn-install]
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-cache4-${{ hashFiles('./yarn.lock') }}
- name: lint-ts
run: yarn lint-ts
- 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: infra
run: yarn workspace @hyperlane-xyz/infra run test
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: Install Foundry
uses: onbjerg/foundry-toolchain@v1
with:
version: nightly
- name: Install dependencies
run: cd solidity && forge install
- name: core
run: yarn workspace @hyperlane-xyz/core run test
- name: gas
run: yarn workspace @hyperlane-xyz/core run gas-ci
- name: coverage
run: yarn workspace @hyperlane-xyz/core run coverage-ci
- uses: osmind-development-org/lcov-reporter-action@v0.3.2
with:
title: "Forge Coverage Report"
lcov-file: ./solidity/lcov.info
lcov-base: ./solidity/forge-lcov.base.info
delete-old-comments: true
- uses: osmind-development-org/lcov-reporter-action@v0.3.2
with:
title: "Hardhat Coverage Report"
lcov-file: ./solidity/coverage/lcov.info
lcov-base: ./solidity/hardhat-lcov.base.info
delete-old-comments: true