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@v3 with: fetch-depth: 0 - name: Get changed files in scope id: changed-files-specific uses: tj-actions/changed-files@v40 with: files: | package.json assets/** build: timeout-minutes: 30 runs-on: ubuntu-latest name: Build needs: [filter] if: | github.ref == 'refs/heads/main' && github.event.repository.fork == false steps: - name: Set current date as env variable run: | echo "builddate=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT id: version - name: Checkout uses: actions/checkout@v3 - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: '0.114.0' extended: true - name: Setup pnpm uses: pnpm/action-setup@v2 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@v3 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@v3 with: path: ./exampleSite/resources key: ${{ runner.os }}-hugo-${{ hashFiles('./exampleSite') }} restore-keys: ${{ runner.os }}-hugo- - name: Install dependencies run: pnpm install - name: Build run: pnpm run build - name: Push artifacts if: ${{ (github.event_name == 'push' || github.event.pull_request.merged == true) && needs.filter.outputs.any_changed == 'true' }} uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.PAT }} title: Update bundled artifacts commit-message: Update bundled artifacts branch: update-artifacts-${{ steps.version.outputs.builddate }} base: main