Bug
The deploy-pages action expects a publish_dir input (defaulting to public) and appears to deploy by pushing files to a branch. However, the standard GitHub Pages deployment flow uses:
upload-pages-artifact — creates and uploads a tar.gz artifact
deploy-pages — downloads that artifact and deploys via the Pages API with OIDC authentication
The internal deploy-pages action fails with:
publish_dir does not exist: public
Because the workflow doesn't have a local public directory — the site was packaged as an artifact in the previous job.
Expected Behavior
The action should:
- Download the
github-pages artifact from the current workflow
- Deploy it via the GitHub Pages deployment API (
POST /repos/{owner}/{repo}/pages/deployments)
- Use OIDC token exchange for authentication (requires
id-token: write)
- Output
page_url
Current Workflow Pattern
build-website:
steps:
- uses: asymmetric-effort/actions/actions/upload-pages-artifact@...
with:
path: website/dist
deploy-website:
needs: build-website
permissions:
pages: write
id-token: write
steps:
- uses: asymmetric-effort/actions/actions/deploy-pages@...
# No inputs needed — it should find the artifact automatically
Bug
The
deploy-pagesaction expects apublish_dirinput (defaulting topublic) and appears to deploy by pushing files to a branch. However, the standard GitHub Pages deployment flow uses:upload-pages-artifact— creates and uploads a tar.gz artifactdeploy-pages— downloads that artifact and deploys via the Pages API with OIDC authenticationThe internal
deploy-pagesaction fails with:Because the workflow doesn't have a local
publicdirectory — the site was packaged as an artifact in the previous job.Expected Behavior
The action should:
github-pagesartifact from the current workflowPOST /repos/{owner}/{repo}/pages/deployments)id-token: write)page_urlCurrent Workflow Pattern