name: "Deploy site"

on:
  pull_request:
    branches:
      - "*"
  push:
    branches:
      - "master"
  workflow_dispatch:
    # Allow manually running workflow
  schedule:
    - cron: "23 2 * * *"

env:
  DEPLOY: >-
    ${{
    github.event_name != 'pull_request'
    &&
    github.ref == 'refs/heads/master'
    }}
  OUTPUT: _html

jobs:
  build:
    name: Build lektor website
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: "3.10"
      - uses: actions/setup-node@v3
        with:
          node-version: "lts/*"

      - name: Install Lektor
        run: |
          python -m pip install --upgrade pip setuptools
          python -m pip install lektor

      - name: Build lektor website
        run: lektor build -f webpack -O '${{ env.OUTPUT }}'

      - name: Check for broken internal links
        uses: wjdp/htmltest-action@master
        with:
          path: ${{ env.OUTPUT }}
          config: .htmltest.yml
          skip_external: true
          log_level: 1

      - name: Deploy lektor website
        if: env.DEPLOY == 'true'
        run: lektor deploy -O '${{ env.OUTPUT }}' ghpages-https
        env:
          LEKTOR_DEPLOY_USERNAME: lektor
          LEKTOR_DEPLOY_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
