Action inputs and outputs
Modes
One action, five modes, chosen with the mode input.
| Mode | What it does | Runs the infrastructure tool |
|---|---|---|
scan |
Previews stacks and brings the dashboard up to date. | Yes |
resolve |
Reacts to a tick: checks who ticked, records the deploy and hands the stack to apply. |
No |
apply |
Previews the stack again and deploys it if nothing moved since the tick. | Yes |
settle |
Gives a deploy a result when its workflow run ended without reporting one. | No |
check |
Reads the repo’s files and says whether the setup is valid. It needs no credentials, no tool and no GitHub API, so it is safe on any pull request. | No |
Inputs
Generated from the action’s action.yml.
mode
What this step does. One of: scan, resolve, apply, settle, check.
- Required: yes
concurrency
How many previews a scan runs at the same time. It belongs to the runner, not to the repo, so it is an input and not a config key.
- Required: no
- Default:
4
preview-timeout
Time limit for one preview, in minutes. A preview that runs longer is stopped and its stack gets a preview failure row.
- Required: no
- Default:
10
github-token
The GITHUB_TOKEN of the workflow run. Leave it at the default. Sluiceway always acts as the workflow’s own token, and a GitHub App token or a personal access token is not supported. The check mode reads files only and never uses it.
- Required: no
- Default:
${{ github.token }}
deployment-id
Required in apply mode and an error in every other mode. The deployment record to deploy: the deployment field of a matrix entry of resolve.
- Required: no
dry-run
apply only. true rehearses a tick: the deployment record, the fresh preview and the hash check run as for a deploy, and then nothing is deployed. The record ends as inactive, “rehearsed, nothing was deployed”, and the job is green.
- Required: no
- Default:
false
job-id
Leave it at the default. The id of the running job, which GitHub gives no step in any other way. Links on the dashboard use it to land on this job’s log.
- Required: no
- Default:
${{ job.check_run_id }}
Outputs
Generated from the action’s action.yml.
matrix
Set by resolve and scan. A JSON list with one { stack, environment, deployment } entry per deploy it started, or []. Hand it to the matrix of the apply job. A scan starts a deploy only for a pull request merged from the dashboard (mergeAndDeploy).
dashboard-url
Set by scan, apply and settle. The web address of the dashboard issue. Empty when the step never got as far as finding it.
pending
Set by scan. The number of pending stacks on the dashboard after this scan. 0 when the scan failed before it wrote the dashboard.
preview-failed
Set by scan. The number of stacks on the dashboard whose preview failed. 0 when the scan failed before it wrote the dashboard.
in-sync
Set by scan. The number of stacks on the dashboard that are in sync. 0 when the scan failed before it wrote the dashboard.
dashboard-changed
Set by scan. true when this scan wrote a body that differs from the one before, false otherwise, so a notify step can stay quiet when nothing changed.
outcome
Set by apply. deployed, in-sync (the fresh preview had nothing to deploy), rehearsed (dry-run stopped after the check of the hash), refused (the change moved since the tick, the deployment record was not one this job may deploy, or deploys are turned off) or failed.
stack
Set by apply. The stack id this job handled. Empty when the job never learned it.
result-file
Set by scan and apply. The path, under RUNNER_TEMP, of a JSON file with what the summary holds: no property value and none of the tool’s own words. Sluiceway does not upload it.