Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.qawolf.com/llms.txt

Use this file to discover all available pages before exploring further.

Deployment triggers are configured for your main environment per your QA Wolf contract. Contact your QA Wolf representative before setting this up — a QAE must configure a deployment trigger for your environment before deploy notifications can initiate test runs.
Make sure you have:
  • Access to your QA Wolf workspace
  • Admin access to your CircleCI project
  • At least one QA Wolf environment already configured with a deployment trigger
  • A QA Wolf API key

Set up your QAWOLF_API_KEY

Find the QAWOLF_API_KEY

1
Open the Workspace name dropdown in QA Wolf and click Workspace Settings.
2
Choose Integrations and then click the icon to the right of API Key under API Access.

Add the QAWOLF_API_KEY secret

1
Open your CircleCI project and go to Project Settings → Environment Variables.
2
Click Add Environment Variable. Name it QAWOLF_API_KEY, paste your API key, and save.

Add the notify script to your repository

Create a file at .circleci/notifyQaWolf.mjs in the repository that corresponds to the deployments QA Wolf will be testing.
import assert from "assert";
import { makeQaWolfSdk } from "https://esm.sh/@qawolf/ci-sdk@0.23.0";

const apiKey = process.env.QAWOLF_API_KEY;
assert(apiKey, "QAWOLF_API_KEY is required");

const sha = process.env.CIRCLE_SHA1;
assert(sha, "CIRCLE_SHA1 is required");

const branch = process.env.CIRCLE_BRANCH;
assert(branch, "CIRCLE_BRANCH is required");

const deployConfig = {
  branch,
  // Required only if the target trigger requires matching a deployment type
  deploymentType: "staging", // e.g., "production", "staging", "qa"
  // Optional: Include deployment URL to override URL environment variable for the run
  deploymentUrl: undefined,
  hostingService: "GitHub", // Set to where your repo is hosted, e.g. "GitHub" or "GitLab"
  // Optional: Include pull request number for PR testing
  // pullRequestNumber: 123,
  // Recommended: Include repository information
  repository: {
    name: "your-repo-name",
    owner: "your-org-name",
  },
  sha,
};

const { attemptNotifyDeploy } = makeQaWolfSdk({ apiKey });

const result = await attemptNotifyDeploy(deployConfig);
if (result.outcome !== "success") {
  // Fail the job.
  throw Error(`Failed to notify QAWolf: ${JSON.stringify(result)}`);
}

// result.runId can be output from the job to be used in a CI-greenlight job.
Replace deploymentType with the value your QA Wolf representative provides. Replace name and owner under repository with your actual repository details. Set hostingService to match where your code is hosted — "GitHub" or "GitLab" — not where your pipeline runs.

Add the notify job to your CircleCI config

Add the notify-qa-wolf job to your .circleci/config.yml and place it in your workflow after your deploy step.
version: 2.1

orbs:
  node: circleci/node@7.0.0

jobs:
  # build: TODO
  # deploy: TODO
  notify-qa-wolf:
    executor: node/default
    steps:
      - checkout
      - run: node --version
      - run: node --experimental-network-imports .circleci/notifyQaWolf.mjs

workflows:
  build-deploy-test-workflow:
    jobs:
      # - build
      # - deploy
      - notify-qa-wolf
The notify-qa-wolf job must:
  • Use the node/default executor
  • Check out your code
  • Run node --experimental-network-imports .circleci/notifyQaWolf.mjs
Place it after your deploy job in the workflow so it runs only once your environment is healthy.

Verify the integration

1
Push a new commit and wait for your CircleCI pipeline to complete.
2
Open QA Wolf and confirm a new run appears under the expected environment.
Last modified on May 28, 2026