name: "CI"

env:
  INFURA_API_KEY: ${{ secrets.INFURA_API_KEY }}
  MNEMONIC: ${{ secrets.MNEMONIC }}

on:
  pull_request:
    branches:
      - "main"
  push:
    branches:
      - "main"

jobs:
  ci:
    runs-on: "ubuntu-latest"
    steps:
      - name: "Check out the repo"
        uses: "actions/checkout@v3"

      - name: "Install Node.js"
        uses: "actions/setup-node@v3"
        with:
          cache: "yarn"
          node-version: "16"

      - name: "Install the dependencies"
        run: "yarn install --immutable"

      - name: "Lint the code"
        run: "yarn lint"

      - name: "Add lint summary"
        run: |
          echo "## Lint results" >> $GITHUB_STEP_SUMMARY
          echo "✅ Passed" >> $GITHUB_STEP_SUMMARY

      - name: "Compile the contracts and generate the TypeChain bindings"
        run: "yarn typechain"

      - name: "Test the contracts and generate the coverage report"
        run: "yarn coverage"

      - name: "Add test summary"
        run: |
          echo "## Test results" >> $GITHUB_STEP_SUMMARY
          echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
