name: node on: # Triggers the workflow on push or pull request events but only for the main and v2 branches 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 - 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) 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 - 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 - 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 - name: helloworld run: yarn workspace @hyperlane-xyz/helloworld 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