DocsIaC & CI/CD GatesGitHub Actions CI/CD Gates
CI/CDUpdated 2026-08-22

GitHub Actions CI/CD Gates

Block broken deployments and automate synthetic smoke tests in GitHub Actions workflows.

The official SteadyStack GitHub Action (getsteadystack/steadystack-action) allows you to run instant multi-region synthetic checks against staging, preview (e.g., Vercel / Cloudflare Pages), or production deployments directly within your CI/CD pipelines.

If any endpoint returns non-2xx responses or violates latency thresholds, your GitHub Action will fail immediately, preventing broken releases from hitting production.


Quick Setup

Add the action step to your .github/workflows/deploy.yml workflow:

YAML
name: Production Deployment & Health Gate

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Deploy to Cloudflare / Vercel
        run: npm run deploy

      - name: SteadyStack Synthetic Health Gate
        uses: getsteadystack/steadystack-action@v1
        with:
          api-key: ${{ secrets.STEADYSTACK_API_KEY }}
          monitor-id: "mon_production_gateway"
          wait-for-quorum: true
          timeout-seconds: 60
          max-latency-ms: 1000

Action Inputs & Configuration

InputRequiredDefaultDescription
api-keyYes—SteadyStack API key (pg_live_...) with write permissions.
monitor-idOptional—ID of an existing monitor to trigger immediate quorum check on.
urlOptional—Ephemeral preview URL (e.g. https://pr-123.preview.example.com).
wait-for-quorumNotrueWaits for 4-of-7 regional nodes to confirm health status.
max-latency-msNo2000Maximum acceptable round-trip latency before failing build.
timeout-secondsNo30Maximum time to wait for verification completion.

Preview Environment Ephemeral Testing

For pull requests with dynamic preview URLs:

YAML
- name: Verify Ephemeral Pull Request Preview
  uses: getsteadystack/steadystack-action@v1
  with:
    api-key: ${{ secrets.STEADYSTACK_API_KEY }}
    url: ${{ steps.preview_deploy.outputs.url }}/api/health
    expected-status: 200
    regions: "wnam,weur,apac"