From bafdd38ff7ce01f6a2f0b86594e31ed36b57b345 Mon Sep 17 00:00:00 2001 From: Lemon73 <108001913+Lemon73-Computing@users.noreply.github.com> Date: Mon, 5 May 2025 14:41:30 +0000 Subject: [PATCH] ci: replace github-pages-deploy-action@v4 with hugo official suggestion official guide: https://gohugo.io/host-and-deploy/host-on-github-pages/ --- .github/workflows/deploy.yml | 118 ++++++++++++++++++++++++----------- 1 file changed, 81 insertions(+), 37 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 315b872..700959b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,50 +1,94 @@ -name: Deploy to Github Pages +name: Deploy Hugo site to Pages on: + # Runs on pushes targeting the default branch push: - branches: [main] - pull_request: - branches: [main] + branches: + - main + + # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + jobs: + # Build job build: runs-on: ubuntu-latest - - permissions: - # Give the default GITHUB_TOKEN write permission to commit and push the - # added or changed files to the repository. - contents: write - + env: + HUGO_VERSION: 0.145.0 + HUGO_ENVIRONMENT: production + TZ: America/Los_Angeles steps: - - uses: actions/checkout@v4 - - - name: Cache Hugo resources - uses: actions/cache@v4 - env: - cache-name: cache-hugo-resources + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Install Dart Sass + run: sudo snap install dart-sass + - name: Checkout + uses: actions/checkout@v4 with: - path: resources - key: ${{ env.cache-name }} - - - uses: actions/setup-go@v4 + submodules: recursive + fetch-depth: 0 + - name: Setup Pages + id: pages + uses: actions/configure-pages@v5 + - name: Install Node.js dependencies + run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" + - name: Cache Restore + id: cache-restore + uses: actions/cache/restore@v4 with: - go-version: "^1.24.0" - - run: go version - - - name: Setup Hugo - uses: peaceiris/actions-hugo@v3 + path: | + ${{ runner.temp }}/hugo_cache + key: hugo-${{ github.run_id }} + restore-keys: + hugo- + - name: Configure Git + run: git config core.quotepath false + - name: Build with Hugo + run: | + hugo \ + --gc \ + --minify \ + --baseURL "${{ steps.pages.outputs.base_url }}/" \ + --cacheDir "${{ runner.temp }}/hugo_cache" + - name: Cache Save + id: cache-save + uses: actions/cache/save@v4 with: - hugo-version: "latest" - extended: true - - - name: Build - run: hugo --minify --gc - - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4 + path: | + ${{ runner.temp }}/hugo_cache + key: ${{ steps.cache-restore.outputs.cache-primary-key }} + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 with: - branch: gh-pages - folder: public - clean: true - single-commit: true + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4