From 47137af1a17e19b570af6ca43706fef95bdfb082 Mon Sep 17 00:00:00 2001 From: Stan <26458805+Staninna@users.noreply.github.com> Date: Wed, 27 Aug 2025 15:41:37 +0200 Subject: [PATCH] Update cd.yml --- .github/workflows/cd.yml | 90 ++++++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 31 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index a4ac8e8..c77e2e1 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,48 +1,76 @@ -name: Pages – per-branch static +name: Pages – aggregate all branches on: push: - branches-ignore: - - gh-pages + branches: ["**"] workflow_dispatch: permissions: - contents: write + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true jobs: - deploy: + aggregate_deploy: runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deploy.outputs.page_url }} steps: - - name: Checkout + - name: Checkout (shallow) uses: actions/checkout@v4 + with: + fetch-depth: 1 - - name: Sanitize branch name - id: br + - name: Configure Pages + uses: actions/configure-pages@v5 + + - name: Aggregate files from all branches into ./public shell: bash run: | - SAFE="$(echo "${GITHUB_REF_NAME}" \ - | tr '/:@ ' '----' \ - | sed 's/[^A-Za-z0-9._-]/-/g')" - echo "safe=$SAFE" >> "$GITHUB_OUTPUT" + set -euo pipefail + mkdir -p public - - name: Stage only static files - run: | - mkdir -p _site - rsync -a --prune-empty-dirs \ - --include='*/' \ - --include='*.html' \ - --include='*.css' \ - --include='*.js' \ - --include='*.json' \ - --exclude='*' \ - ./ _site/ + # List remote branches (exclude HEAD pointer) + mapfile -t BRANCHES < <(git ls-remote --heads origin \ + | awk '{print $2}' | sed 's@refs/heads/@@') - - name: Deploy to gh-pages/ - uses: peaceiris/actions-gh-pages@v4 + # Minimal index page + cat > public/index.html <<'HTML' + + Branches

Branches

" >> public/index.html + echo "Built public/ for ${#BRANCHES[@]} branches." + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v4 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_branch: gh-pages - publish_dir: _site - destination_dir: ${{ steps.br.outputs.safe }} - keep_files: true - commit_message: Deploy ${{ github.ref_name }} + path: public + + - name: Deploy to GitHub Pages + id: deploy + uses: actions/deploy-pages@v4