on:
  push:
     branches:
       - 'main'

jobs:
  render:
    runs-on: x86_64
    container:
      image: alpine:latest
    steps:
      - name: Environment setup
        run: |
          apk add git ikiwiki po4a perl-yaml-tiny tree nodejs imagemagick-perlmagick imagemagick imagemagick-jpeg findutils bash imagemagick-webp
      - name: Repo pull
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - name: Pages repo pull
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          ref: pages
          path: public
      - name: Render website
        run: ikiwiki --setup ikiwiki.setup
      - name: Website upload
        run: |
          cp .pages-domains public/.domains
          cp .pages-redirect public/_redirects
          git log -1 --pretty=%B > commit.txt
          cd public
          find -name 'index.html' -type 'l' -delete
          find -name 'index.fr.html' -exec bash -c 'ln -s "${0/.*\/}" "${0/.fr/}"' {} \;
          date > generated.txt
          # Note: the following account information will not work on GHES
          git config user.name "forgejo-actions[bot]"
          git config user.email "dev@ayakael.net"
          git add .
          git commit -F ../commit.txt
          git push
