From 07d964ff9bb978d679e5496303aee93d260bf476 Mon Sep 17 00:00:00 2001 From: Sean Hammond Date: Sat, 4 Oct 2025 11:56:46 +0100 Subject: [PATCH] Don't use upload-pages-artifact In upload-pages-artifact@v4 the maintainers have made the curious decision to omit hidden files (files whose names begin with ".") from the site that gets deployed to GitHub Pages and to provide no way to include a hidden file (at least "for now"), even though static sites may of course want to include files whose names begin with "." https://github.com/actions/upload-pages-artifact/pull/102 Work around this in by creating the "artifact" (tar file) ourselves and uploading it using the upload-artifact action, as suggested in the upload-pages-artifact PR linked above. --- .github/workflows/github_pages.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_pages.yml b/.github/workflows/github_pages.yml index 9c279ab1..86c23fa3 100644 --- a/.github/workflows/github_pages.yml +++ b/.github/workflows/github_pages.yml @@ -85,10 +85,28 @@ jobs: chmod -c -R +rX "${{ inputs.output-path }}" | while read line; do echo "::warning title=Invalid file permissions automatically fixed::$line" done + - name: Archive artifact + shell: sh + run: | + echo "::group::Archive artifact" + tar \ + --dereference \ + --hard-dereference \ + --directory "$OUTPUT_PATH" \ + -cvf "$RUNNER_TEMP/artifact.tar" \ + --exclude=.git \ + --exclude=.github \ + . + echo "::endgroup::" + env: + OUTPUT_PATH: ${{ inputs.output-path }} - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-artifact@v4 with: - path: ${{ inputs.output-path }} + name: github-pages + path: ${{ runner.temp }}/artifact.tar + retention-days: 1 + if-no-files-found: error deploy: concurrency: group: "pages"