Files
bridget/.github/workflows/build.yml
Sped0n ba46f52d55 ci: build with multiple Hugo versions and update caches
Add matrix strategy for 'latest' and '0.114.0' in build job. Update
pnpm and Hugo cache keys for better reliability. Push artifacts only
for 'latest' version. Add [skip ci] to format commit message.

Signed-off-by: Sped0n <hi@sped0n.com>
2025-11-12 02:40:38 +08:00

105 lines
2.7 KiB
YAML

name: 'Build'
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: write
jobs:
filter:
runs-on: ubuntu-latest
name: Filter
outputs:
any_changed: ${{ steps.changed-files-specific.outputs.any_changed }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files in scope
id: changed-files-specific
uses: tj-actions/changed-files@v46
with:
files: |
package.json
assets/**
build:
timeout-minutes: 30
runs-on: ubuntu-latest
name: Build (Hugo ${{ matrix.hugo-version }})
needs: [filter]
if: |
github.ref == 'refs/heads/main' &&
github.event.repository.fork == false
strategy:
matrix:
hugo-version: ['latest', '0.114.0']
steps:
- name: Set current date as env variable
run: |
echo "builddate=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
id: version
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PAT }}
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: ${{ matrix.hugo-version }}
extended: true
- name: Setup Dart Sass
run: sudo snap install dart-sass
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 8
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('./pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Setup hugo cache
uses: actions/cache@v4
with:
path: ./exampleSite/resources
key: ${{ runner.os }}-hugo-${{ matrix.hugo-version }}-${{ hashFiles('./exampleSite') }}
restore-keys: |
${{ runner.os }}-hugo-${{ matrix.hugo-version }}-
- name: Install dependencies
run: pnpm install
- name: Build
run: |
pnpm run vite:build
hugo --logLevel info --source=exampleSite --gc --minify
- name: Push artifacts
if: >
matrix.hugo-version == 'latest' &&
(github.event_name == 'push' || github.event.pull_request.merged == true) &&
needs.filter.outputs.any_changed == 'true'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'ci: update bundled artifacts [skip ci]'