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@v47 with: files: | package.json pnpm-lock.yaml tsconfig.json vite.config.ts assets/** build: timeout-minutes: 30 runs-on: ubuntu-latest name: Build (Hugo ${{ matrix.hugo-version }}) needs: [filter] if: | 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 pnpm uses: pnpm/action-setup@v3 with: version: 10 - 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 build - 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]'