name: check-links
on:
  push:
    branches: [ main ]
    paths-ignore:
      - 'cmd/builder/**'
  pull_request:
    paths-ignore:
      - 'cmd/builder/**'

jobs:
  changedfiles:
    name: changed files
    runs-on: ubuntu-latest
    outputs:
      md: ${{ steps.changes.outputs.md }}
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Get changed files
        id: changes
        run: |
          echo "::set-output name=md::$(git diff --name-only --diff-filter=ACMRTUXB origin/${{ github.event.pull_request.base.ref }} ${{ github.event.pull_request.head.sha }} | grep .md$ | xargs)"

  check-links:
    runs-on: ubuntu-latest
    needs: changedfiles
    if: ${{needs.changedfiles.outputs.md}}
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Install markdown-link-check
        run: npm install -g markdown-link-check

      - name: Run markdown-link-check
        run: |
          markdown-link-check \
            --verbose \
            --config .github/workflows/check_links_config.json \
            ${{needs.changedfiles.outputs.md}}
