Skip to content

deploy-pages: incompatible with GitHub Pages artifact-based deployment #61

Description

@sam-caldwell

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:

  1. upload-pages-artifact — creates and uploads a tar.gz artifact
  2. 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:

  1. Download the github-pages artifact from the current workflow
  2. Deploy it via the GitHub Pages deployment API (POST /repos/{owner}/{repo}/pages/deployments)
  3. Use OIDC token exchange for authentication (requires id-token: write)
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions