name: Lint
on:
  pull_request_target:
    branches:
      - main
jobs:
  lint:
    strategy:
      matrix:
        node: ["14.x"]
        os: [ubuntu-latest]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 2

      - name: Use Node ${{ matrix.node }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
          cache: "yarn"

      - name: Install deps
        if: steps.yarn-cache.outputs.cache-hit != 'true'
        run: yarn --frozen-lockfile

      - name: Lint
        run: yarn lint:report
        continue-on-error: true

      - name: Merge lint reports
        run: jq -s '[.[]]|flatten' lint-results/*.json &> lint-results/eslint_report.json

      - name: Annotate Code Linting Results
        uses: ataylorme/eslint-annotate-action@1.2.0
        with:
          repo-token: "${{ secrets.GITHUB_TOKEN }}"
          report-json: "lint-results/eslint_report.json"

      - name: Upload ESLint report
        if: ${{ always() }}
        uses: actions/upload-artifact@v2
        with:
          name: lint-results
          path: lint-results
