name: Build Website on: push: branches: - main paths: - website/** - github_docs/** - .github/workflows/website-build.yml pull_request: branches: - main paths: - website/** - github_docs/** - .github/workflows/website-build.yml workflow_dispatch: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true concurrency: group: website-build-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: contents: read jobs: build-website: name: Build 11ty Website runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.7 with: ssh-key: ${{ secrets.WEBSITE_DEPLOY_KEY }} - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "24" cache: npm cache-dependency-path: website/package-lock.json - name: Install dependencies working-directory: website run: npm ci - name: Build website working-directory: website run: npm run build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload website artifact uses: actions/upload-artifact@v4.3.4 with: name: kst4contest-website path: website/_site/ retention-days: 7 - name: Commit rebuilt site if: github.event_name == 'push' && github.ref == 'refs/heads/main' run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add website/_site if git diff --cached --quiet; then echo "No changes to commit" else git commit -m "chore: rebuild website [skip ci]" git push fi