Allow deploy by artifact_id
Sometimes my workflow failed and I need to rerun it. I have both upload-pages-artifact and deploy-pages in the same job, and during the 2nd run deploy-pages will fail with:
Run actions/deploy-pages@v4
with:
token: ***
timeout: 600000
error_count: 10
reporting_interval: 5000
artifact_name: github-pages
preview: false
env:
GITHUB_PAGES: true
Fetching artifact metadata for "github-pages" in this workflow run
Found 2 artifact(s)
Error: Fetching artifact metadata failed. Is githubstatus.com reporting issues with API requests, Pages, or Actions? Please re-run the deployment at a later time.
Error: Error: Multiple artifacts named "github-pages" were unexpectedly found for this workflow run. Artifact count is 2.
at getArtifactMetadata (/home/runner/work/_actions/actions/deploy-pages/v4/src/internal/api-client.js:89:1)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at Deployment.create (/home/runner/work/_actions/actions/deploy-pages/v4/src/internal/deployment.js:66:1)
at main (/home/runner/work/_actions/actions/deploy-pages/v4/src/index.js:30:1)
Error: Error: Multiple artifacts named "github-pages" were unexpectedly found for this workflow run. Artifact count is 2.
upload-pages-artifact already outputs artifact_id which should be unique between runs, and #251 seems already have the plumbing laid out. If we can pass this artifact_id to deploy-pages there will be no ambiguity for which artifact we want to upload.
Hit this pretty regularly unfortunately. Workaround is to manually go in and delete artifacts from the previous builds before re-running jobs. Which is a bummer when I might want to come back and reference those again to learn more about the failures.
I also want to catch an artefact uploaded by a different workflow via workflow_run using ${{ github.event.workflow_run.id }}, just like it is possible with actions/download-artifact@v5, but this action fails with "No artifacts named "github-pages" were found for this workflow run.".
Right now, we have to download+upload it again, which is awkward.
steps:
- uses: actions/download-artifact@v5
with:
github-token: ${{ github.token }}
name: github-pages
path: docs
run-id: ${{ github.event.workflow_run.id }}
- uses: actions/upload-pages-artifact@v4
with:
path: docs