qawolf/notify-qawolf-on-deploy-action reports the deploy, and a trigger decides which flows run. qawolf/wait-for-verdict-action waits for those runs and passes or fails on QA Wolf’s verdict, so a release job that depends on it ships only a deployment QA Wolf says is good.
The wait is optional. Reporting alone is what starts the runs.
Requirements
- An API key, created under Workspace Settings → API Keys. A workspace, organization or user key all work.
- The workspace id, shown on the same page.
- A deployment trigger whose conditions match the deployments the workflow reports. See Triggers.
Report the deploy and wait for the verdict
1
Store the API key and workspace id
Add the API key as a repository secret named
QAWOLF_API_KEY, and the workspace id as QAWOLF_WORKSPACE_ID.2
Report the deploy from the deploy job
Add the notify action as the last step of the job that deploys, once the deploy is live, and expose its
deployment-id output as a job output.3
Wait for the verdict in its own job
Add a job that
needs: the deploy job and runs the wait action with that deployment id. Make every job that releases the deployment needs: the wait job.environmentis the name or alias of the QA Wolf environment the deploy belongs to. On a pull request event, leave it out and the notify action reports into the pull request’s own ephemeral environment. See PR testing.deployment-idon the wait action is the notify action’sdeployment-idoutput. It is not thedeployment-idinput you may pass to the notify action, which is your own id for the deploy and one QA Wolf does not look deployments up by.- The wait action’s
timeoutdefaults to2h. Set the wait job’stimeout-minutesabove it, so the step ends with a summary and a link to each run instead of being canceled by GitHub.
@qawolf/ci-sdk instead, pass the deployment id deployment.reportStatus returned to deployment-id.
What the step does
passed means QA Wolf found no open blocking bug after triaging the runs, not that every flow was green. A flow that failed for a reason QA Wolf triaged as non-blocking, or as test maintenance, does not fail the step.
Any answer the step could not get from QA Wolf also fails it, so the gate never passes by accident. The
outcome, run-urls and verdict outputs tell later steps what happened.
When the step fails on needs-review or timed-out, you don’t need to deploy again. Answer the questions on the run page, then use Re-run failed jobs on the workflow run. GitHub re-runs the wait job with the same deployment id, and the step picks up the run QA Wolf already started.
To report the verdict without blocking the workflow, set continue-on-error: true on the wait step and read its outcome output in a later step.
The action’s README lists every input and output, and covers matrix deploys and workflow concurrency.
Related
- Node.js SDK — the same report and wait from any CI system that runs Node.js.
- PR testing — testing every pull request’s preview deploy.
- Deployments — how the environment name and preview flag resolve.