name: Verify
on:
  workflow_call:
  workflow_dispatch:

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Clone repository
        uses: actions/checkout@v3
        with:
          token: ${{ secrets.WAGMI_BOT_GITHUB_TOKEN }}

      - name: Install dependencies
        uses: ./.github/actions/install-dependencies

      - name: Lint code
        run: pnpm format && pnpm lint:fix

      - uses: stefanzweifel/git-auto-commit-action@v4
        env:
          GITHUB_TOKEN: ${{ secrets.WAGMI_BOT_GITHUB_TOKEN }}
        with:
          commit_message: "chore: format"
          commit_user_name: "wagmi-sh"
          commit_user_email: "dev@wagmi.sh"
          push_options: --force

  build:
    name: Build
    needs: lint
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Clone repository
        uses: actions/checkout@v3

      - name: Install dependencies
        uses: ./.github/actions/install-dependencies

      - name: Build
        run: pnpm build

  types:
    name: Types
    needs: lint
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Clone repository
        uses: actions/checkout@v3

      - name: Install dependencies
        uses: ./.github/actions/install-dependencies

      - name: Check types
        run: pnpm typecheck

  test:
    name: Test
    runs-on: ubuntu-latest

    steps:
      - name: Clone repository
        uses: actions/checkout@v3

      - name: Install dependencies
        uses: ./.github/actions/install-dependencies

      - name: Check types
        run: pnpm test
        env:
          VITE_WC_PROJECT_ID: ${{ secrets.VITE_WC_PROJECT_ID }}
