Skip to content

CI Integration

Integrate Certyn in GitHub Actions and generic CI pipelines with CLI-first examples.

Use the CLI as the canonical CI integration surface:

certyn run smoke --project <project-slug> --environment <environment-key>

GitHub Actions with certyn/action

name: Certyn PR Smoke Gate

on:
  pull_request:

jobs:
  certyn:
    runs-on: ubuntu-latest
    steps:
      - name: Run Certyn
        id: certyn
        uses: certyn/action@v1
        with:
          api_url: ${{ vars.CERTYN_API_URL || 'https://api.certyn.io' }}
          api_key: ${{ secrets.CERTYN_API_KEY }}
          project_slug: ${{ secrets.CERTYN_PROJECT_SLUG }}
          environment_key: ${{ vars.CERTYN_ENVIRONMENT_KEY || 'staging' }}
          process_slug: smoke-suite
          timeout_seconds: 1800
          wait_for_completion: true

      - name: Summary
        if: always()
        run: |
          echo "run_id=${{ steps.certyn.outputs.run_id }}"
          echo "status_url=${{ steps.certyn.outputs.status_url }}"
          echo "app_url=${{ steps.certyn.outputs.app_url }}"
          echo "failed=${{ steps.certyn.outputs.failed }}"
          echo "blocked=${{ steps.certyn.outputs.blocked }}"

GitHub Actions with direct CLI

name: Certyn Direct CLI

on:
  workflow_dispatch:

jobs:
  certyn:
    runs-on: ubuntu-latest
    steps:
      - name: Install certyn CLI
        run: |
          curl -fsSL https://certyn.io/install | bash -s -- --version v0.1.0
          echo "$HOME/.local/bin" >> "$GITHUB_PATH"

      - name: Run smoke gate
        env:
          CERTYN_API_URL: ${{ vars.CERTYN_API_URL || 'https://api.certyn.io' }}
          CERTYN_API_KEY: ${{ secrets.CERTYN_API_KEY }}
          CERTYN_PROJECT: ${{ secrets.CERTYN_PROJECT_SLUG }}
          CERTYN_ENVIRONMENT: ${{ vars.CERTYN_ENVIRONMENT_KEY || 'staging' }}
        run: |
          certyn run smoke --timeout 30m

Other CI systems

Use the same direct CLI pattern:

export CERTYN_API_URL="https://api.certyn.io"
export CERTYN_API_KEY="<api-key>"

certyn run smoke --project my-app --environment staging --timeout 30m

Use --json when you need machine-readable output for custom automation.

When a gate fails, continue with CLI Triage Workflows to inspect issues, executions, and test quality.