Skip to content

GitHub

Install the Smoketest GitHub App and run tests as pull request checks or branch-push rules.

View as Markdown

The Smoketest GitHub App lets you run selected tests when pull requests change or when branches receive new commits. Each matching trigger rule creates one aggregate GitHub check, waits for the configured deployment readiness condition, links to the Smoketest run detail page after runs start, and finishes when the linked run or runs finish.

Connect GitHub

  1. Open Dashboard -> Integrations in Smoketest.
  2. Under GitHub, click Connect GitHub.
  3. In GitHub, choose the account and repositories where Smoketest should be installed.
  4. After GitHub redirects back to Smoketest, confirm the repositories appear on the Integrations page.
  5. Map each repository you want to use to the current Smoketest project.

A repository can be mapped to one Smoketest project at a time.

Create a trigger rule

After a repository is mapped, create a rule for that repository.

SettingWhat it does
EventChoose Pull request or Push.
TargetChoose one test, or choose a project tag to run all tests with that tag.
Branch patternsFilter PR base branches or pushed branches.
Preview URL templateOptionally override the test URL for this GitHub-triggered run. When URL readiness is enabled, Smoketest polls the rendered template before starting runs.
Start testChoose whether runs start immediately, after a fixed delay, or when the target URL is reachable.
EnabledTurn the rule on or off without deleting it.

Pull request rules run for opened, reopened, synchronized, and ready-for-review PRs. Draft PRs are skipped until they become ready for review.

Push rules default to main and master. Leave branch patterns blank to match all branches.

Deployment readiness

GitHub checks stay in progress while Smoketest waits for the selected readiness condition.

ModeDefaultUse it for
When URL is reachablePull request rules wait 30 seconds, then poll every 15 seconds for up to 10 minutes.Vercel, Netlify, or other PR preview deployments where the URL becomes available after the webhook.
After fixed delayPush rules wait 120 seconds before starting.Production branch pushes where the deployment usually takes a predictable amount of time.
ImmediatelyNo wait.Repositories where the target URL is already serving the new code when the webhook arrives.

URL readiness treats 2xx and 3xx HTTP responses as ready. 4xx, 5xx, and network errors keep waiting until the timeout. If the URL never becomes reachable, Smoketest completes the GitHub check as timed out without starting runs.

For PR previews, set a preview URL template such as https://{branchSlug}--acme-preview.example.com and keep Start test set to When URL is reachable. For production pushes to main or master, use After fixed delay and tune the delay to match your deploy time.

Branch patterns

Branch patterns are comma-separated and support * wildcards.

Examples:

PatternMatches
mainOnly main
main,mastermain or master
release/*Branches such as release/2026-06
preview/*,stagingPreview branches plus staging

For pull request rules, patterns match the PR base branch. For push rules, patterns match the pushed branch.

Preview URL templates

Preview URL templates let one saved test run against per-branch or per-PR deployments. Leave the template blank to use the test's saved URL.

When Start test is set to When URL is reachable, Smoketest uses the preview URL template as the readiness URL. If the template is blank, a single-test rule waits on that test's saved URL, and a tag rule waits on all unique saved URLs for the matching tests.

Templates must render to an absolute http or https URL. Supported variables:

VariableMeaning
{owner}Repository owner
{repo}Repository name
{branch}Source branch for PRs, pushed branch for pushes
{branchSlug}URL-safe branch value
{baseBranch}PR base branch, or pushed branch for push events
{sha}Full commit SHA
{shortSha}First 7 characters of the SHA
{prNumber}Pull request number, blank for push events

Example:

Text
https://{branchSlug}--acme-preview.example.com

If a template renders to an invalid URL, Smoketest completes the GitHub check as action required instead of leaving it pending.

GitHub check results

Each matching rule creates one check named Smoketest / <test name> for test rules or Smoketest / #<tag> for tag rules.

OutcomeMeaning
successAll linked Smoketest runs passed.
failureAt least one linked run failed or errored.
cancelledA linked run was cancelled.
neutralA tag rule matched no current tests.
timed_outA readiness URL never became reachable, or Smoketest did not receive terminal results before the check timeout.
action_requiredSmoketest could not enqueue the run, usually because billing, sharedStep validation, or preview URL validation blocked it.

Open the check details link to see the repository, commit, rule target, and linked Smoketest runs.

On this page