name: docs

on:
  pull_request:
    paths:
      - "docs/**"
      - "*.md"
    branches:
      - main
      - 3.x

# Remove default permissions of GITHUB_TOKEN for security
# https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
permissions: {}

jobs:
  link-checker:
    runs-on: ubuntu-latest
    steps:
      # Cache lychee results (e.g. to avoid hitting rate limits)
      - name: Restore lychee cache
        uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
        with:
          path: .lycheecache
          key: cache-lychee-${{ github.sha }}
          restore-keys: cache-lychee-

      # check links with Lychee
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Lychee link checker
        uses: lycheeverse/lychee-action@5cd5ba7877bce8b3973756ae3c9474ce1e50be2f # for v1.8.0
        with:
          # arguments with file types to check
          args: >-
            --cache
            --verbose
            --no-progress
            --max-cache-age=1d
            './**/*.md'
            './**/*.html'
          # fail the action on broken links
          fail: true
        env:
          # to be used in case rate limits are surpassed
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
