brandon-fryslie/gh-pages-multiplexer
Deploy static sites to versioned subdirectories on gh-pages
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| source-dir | Directory containing build output to deploy | yes | — |
| target-branch | Branch to deploy to | no | gh-pages |
| ref-patterns | Glob patterns for refs that trigger deployment (comma-separated). Default: deploy all refs. Bypassed when `version` is set. | no | * |
| base-path-mode | Base path correction mode: "base-tag" (default), "rewrite", or "none". Use "none" when your build already sets the correct absolute base URL at build time (Vite `base`, Next.js `basePath`, Astro `base`, etc.) — the action will copy your files unchanged. | no | base-tag |
| base-path-prefix | Override the repository base path (e.g., "/my-repo"). Auto-detected from GITHUB_REPOSITORY if not set. | no | "" |
| version | Explicit version slot name (e.g., "v1.2.3"). When set, overrides the ref-derived slot and bypasses ref-patterns filtering. Required if you want to deploy with a build-time base URL that matches a predetermined version path. | no | "" |
| widget-icon | Custom SVG markup for the navigation widget icon. Must be a complete <svg>...</svg> element. Default: built-in layers icon. | no | "" |
| widget-label | Label text shown on the widget handle when hovered. Supports the {version} token, which is replaced with the deployed version slot. Default: "{version}". | no | "" |
| widget-position | Where the widget tab appears, in the form "<edge> <vertical>". Edge is "right" or "left". Vertical is a percentage from the top (e.g. "80%"). Default: "right 80%". | no | "" |
| widget-color | Hex color (e.g. "#f97316") for the widget handle background. Default: bright orange "#f97316". | no | "" |
| namespace-storage | When "true", inject a runtime wrapper that transparently namespaces localStorage and sessionStorage by <owner>/<repo>/<version>. Prevents collision between different repos on the same <owner>.github.io origin. Default: "false" (opt-in — the wrapper is a behavior change for deployed apps). | no | false |
| token | GitHub token for pushing to the target branch | no | ${{ github.token }} |
Outputs
| name | description |
|---|---|
| version | The deployed version name (sanitized from ref) |
| url | The URL of the deployed version |