# SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
#
# SPDX-License-Identifier: AGPL-3.0-only

name: Frontend / Lint

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

env:
  NODE_VERSION: 18

defaults:
  run:
    working-directory: frontend

jobs:
  changes:
    name: Check for frontend changes
    runs-on: ubuntu-latest
    permissions:
      pull-requests: read
    outputs:
      changed: ${{ github.event_name == 'push' || steps.changed.outputs.files }}
    steps:
      - uses: actions/checkout@v3
        if: github.event_name != 'push'

      - name: Check for frontend file changes
        if: github.event_name != 'push'
        uses: dorny/paths-filter@v2
        id: changed
        with:
          filters: |
            files:
              - 'commons/**'
              - 'frontend/**'
              - '.github/**'
              - '.yarn/**'

  lint:
    needs: changes
    runs-on: ubuntu-latest
    name: Lints all .ts and .tsx files
    steps:
      - name: Checkout repository
        if: needs.changes.outputs.changed == 'true'
        uses: actions/checkout@v3

      - name: Setup node
        if: needs.changes.outputs.changed == 'true'
        uses: ./.github/actions/setup-node
        with:
          NODE_VERSION: ${{ env.NODE_VERSION }}

      - name: Lint code
        if: needs.changes.outputs.changed == 'true'
        run: yarn lint