Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 20
Cyril Rohr edited this page Mar 13, 2026
·
18 revisions
The PullPreview action supports the following with: inputs from action.yml.
| Input | Default | Applies to | Description |
|---|---|---|---|
app_path | . | all deployments | Path to your application. For compose, this is where PullPreview resolves Compose files. For helm, this is the root used for local chart values files and app tree sync. |
dns | my.preview.run | all deployments | DNS suffix used for generated preview hostnames. Built-in alternatives include rev1.click through rev9.click. |
max_domain_length | 62 | all deployments | Maximum generated fully qualified domain name length. Must stay at or below 62 for Let's Encrypt compatibility. |
label | pullpreview | github-sync workflow runs | Label that triggers preview deployments and scopes scheduled cleanup. |
github_token | ${{ github.token }} | github-sync workflow runs | GitHub token used for labels, PR comments, collaborator lookup, and SSH public key lookup. |
admins | @collaborators/push | all deployments | Comma-separated GitHub logins whose SSH public keys are installed on the preview instance. |
ports | 80/tcp,443/tcp | all deployments | Public firewall ports to expose. SSH port 22 is always added automatically. |
cidrs | 0.0.0.0/0 | all deployments | Source IPs allowed to reach the exposed ports. |
default_port | 80 | all deployments | Port used when building the preview URL and the url output. If proxy_tls is enabled, PullPreview switches this to 443. |
compose_files | docker-compose.yml | deployment_target: compose | Comma-separated Compose files passed to docker compose. Not supported for Helm previews except for the untouched default value. |
compose_options | --build | deployment_target: compose | Additional arguments appended to docker compose up. Not supported for Helm previews except for the untouched default value. |
deployment_target | compose | all deployments | Deployment target to use: compose or helm. |
chart | "" | deployment_target: helm | Helm chart reference. Supported forms: local path, repo chart name, or OCI reference. Required for Helm previews. |
chart_repository | "" | deployment_target: helm | Helm repository URL used when chart is a repo chart name such as wordpress. Do not set it for local chart paths or OCI references. |
chart_values | "" | deployment_target: helm | Comma-separated Helm values files relative to app_path. |
chart_set | "" | deployment_target: helm | Comma-separated Helm --set overrides. Supports placeholder expansion such as {{ release_name }} and {{ namespace }}. |
license | "" | all deployments | PullPreview license key. |
instance_type | small | all deployments | Provider-specific instance size. Lightsail uses bundle names such as small or medium. Hetzner accepts server types such as cpx21. |
region | "" | all deployments | Provider region/location override. Defaults are provider-specific: Lightsail uses us-east-1, Hetzner uses nbg1. |
deployment_variant | "" | github-sync workflow runs | Optional short suffix used to run multiple preview environments per pull request. Maximum length is 4 characters. |
image | ubuntu-24.04 | all deployments | Provider image override. It is used by Hetzner and ignored by Lightsail. |
provider | lightsail | all deployments | Cloud provider: lightsail or hetzner. |
registries | "" | deployment_target: compose | Private registry credentials for Compose deployments, for example docker://user:password@ghcr.io. Not supported for Helm previews. |
proxy_tls | "" | all deployments | Enables PullPreview-managed HTTPS with Let's Encrypt. For Compose, the format is service:port. For Helm, the same value targets a Kubernetes Service and is required. |
pre_script | "" | all deployments | Path to a local bash script relative to app_path, executed inline over SSH before the deployment target runs. |
ttl | infinite | github-sync workflow runs | Maximum preview lifetime such as 10h, 5d, or infinite. Scheduled cleanup removes expired deployments and labels. |
composeis the default target.helmrequires bothchartandproxy_tls.helmrejectsregistries.helmrejects customizedcompose_filesandcompose_options.pre_scriptworks for both targets.
- For
compose, PullPreview injects a Caddy sidecar in front of the target Compose service. - For
helm, PullPreview deploys a Caddy Deployment in the preview namespace and routes traffic to the Kubernetes Service named byproxy_tls. - Helm
proxy_tlsvalues support placeholders:{{ release_name }}{{ namespace }}
- Helm
chart_setvalues also support:{{ pullpreview_url }}{{ pullpreview_public_dns }}{{ pullpreview_public_ip }}{{ release_name }}{{ namespace }}
admins: "@collaborators/push"loads up to the first 100 GitHub collaborators with push permission and logs a warning if more pages exist.- SSH public keys fetched from GitHub are cached between workflow runs through the action cache.
provider: hetznerrequires bothHCLOUD_TOKENandHETZNER_CA_KEY.- For Hetzner, PullPreview uses
rootas the SSH username and defaultsregiontonbg1,imagetoubuntu-24.04, andinstance_typetocpx21when you leave it empty or usesmall/micro.
See also: