name: Update Hugo version

on:
  schedule:
    - cron: "0 6 * * *"

  workflow_dispatch:

jobs:
  updateBlowfish:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code into the Go module directory
        uses: actions/checkout@v4
        with:
          ref: dev
          submodules: true # Fetch Hugo themes (true OR recursive)
          fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod

      - name: Fetch release version
        id: fetch-release
        run: |
          curl -sL https://api.github.com/repos/gohugoio/hugo/releases/latest | \
          jq -r ".tag_name" > release-versions/hugo-latest.txt

      - name: Check for modified files
        id: git-check
        run:
          echo ::set-output name=modified::$([ -z "`git status --porcelain`" ]
          && echo "false" || echo "true")

      - name: Update config.toml
        id: update-config
        if: steps.git-check.outputs.modified == 'true'
        run: |
          cat release-versions/hugo-latest.txt | \
          while read version; do sed -i'' -E "s/(max = \")[0-9]+\.[0-9]+\.[0-9]+(\")/\1${version#v}\2/g" config.toml; done

      - name: Create Pull Request
        if: steps.git-check.outputs.modified == 'true'
        uses: peter-evans/create-pull-request@v7
        with:
          commit-message: Update Hugo supported version
          title: ⚙️ Update Hugo supported version
          body: |
            Updates [Hugo][1] support

            Auto-generated by [create-pull-request][2]

            [1]: https://github.com/gohugoio/hugo
            [2]: https://github.com/peter-evans/create-pull-request
          labels: dependencies, automated pr
          branch: hugo-new-version
          base: dev
