name: Check for broken links on site

on:
  workflow_run:
    workflows: [Deploy site]
    types: [completed]

jobs:
  check-links-on-site:
    # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    # available images: https://github.com/actions/runner-images#available-images
    runs-on: ubuntu-latest
    steps:
      - name: Checkout 🛎️
        uses: actions/checkout@v4
      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.2.2"
          bundler-cache: true
      - name: Update _config.yml ⚙️
        uses: fjogeleit/yaml-update-action@main
        with:
          commitChange: false
          valueFile: "_config.yml"
          changes: |
            {
              "giscus.repo": "${{ github.repository }}",
              "baseurl": ""
            }
      - name: Install and Build 🔧
        run: |
          pip3 install --upgrade jupyter
          export JEKYLL_ENV=production
          bundle exec jekyll build
      - name: Purge unused CSS 🧹
        run: |
          npm install -g purgecss
          purgecss -c purgecss.config.js
      - name: Link Checker 🔗
        uses: lycheeverse/lychee-action@v1.9.0
        with:
          fail: true
          # only check local links
          args: --offline --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --verbose --no-progress '_site/**/*.html'
