name: Deploy site

on:
  push:
    branches:
      - master
      - main
    paths:
      - "assets/**"
      - "**.html"
      - "**.js"
      - "**.liquid"
      - "**/*.md"
      - "**.yml"
      - "!.github/workflows/axe.yml"
      - "!.github/workflows/broken-links.yml"
      - "!.github/workflows/deploy-docker-tag.yml"
      - "!.github/workflows/deploy-image.yml"
      - "!.github/workflows/docker-slim.yml"
      - "!.github/workflows/lighthouse-badger.yml"
      - "!.github/workflows/prettier.yml"
      - "!lighthouse_results/**"
      - "!CONTRIBUTING.md"
      - "!CUSTOMIZE.md"
      - "!FAQ.md"
      - "!INSTALL.md"
      - "!README.md"
  pull_request:
    branches:
      - master
      - main
    paths:
      - "assets/**"
      - "**.html"
      - "**.js"
      - "**.liquid"
      - "**/*.md"
      - "**.yml"
      - "!.github/workflows/axe.yml"
      - "!.github/workflows/broken-links.yml"
      - "!.github/workflows/deploy-docker-tag.yml"
      - "!.github/workflows/deploy-image.yml"
      - "!.github/workflows/docker-slim.yml"
      - "!.github/workflows/lighthouse-badger.yml"
      - "!.github/workflows/prettier.yml"
      - "!lighthouse_results/**"
      - "!CONTRIBUTING.md"
      - "!CUSTOMIZE.md"
      - "!FAQ.md"
      - "!INSTALL.md"
      - "!README.md"
  workflow_dispatch:

permissions:
  contents: write

jobs:
  deploy:
    # 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"
          propertyPath: "giscus.repo"
          value: ${{ github.repository }}
      - name: Install and Build 🔧
        run: |
          pip3 install --upgrade jupyter
          export JEKYLL_ENV=production
          bundle exec jekyll build --lsi
      - name: Purge unused CSS 🧹
        run: |
          npm install -g purgecss
          purgecss -c purgecss.config.js
      - name: Deploy 🚀
        if: github.event_name != 'pull_request'
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          folder: _site
