Automatically trigger Bugster tests from your GitHub workflows using the official Bugster GitHub Action. Perfect for running tests after deployments or on pull requests.

Overview

The Bugster GitHub Action sends deployment notifications to Bugster Cloud directly from your GitHub workflows. It uses the same webhook API as our custom integrations but provides a simpler, GitHub-native experience.

Bugster.dev GitHub Action

Official GitHub Action available in the GitHub Marketplace

Quick Setup

1

Add Bugster API key to secrets

In your GitHub repository, go to Settings > Secrets and variables > Actions and add:
  • Name: BUGSTER_API_KEY
  • Value: Your Bugster API key (from Settings > API Keys in your Bugster dashboard)
Never commit your API key directly to your workflow file. Always use GitHub secrets.
2

Get your project credentials

From your Bugster dashboard, collect:
  • Organization ID: Settings > Organization
  • Project ID: Project Settings > General
Both values are also available in Project Settings > Integrations for convenience.
3

Add the action to your workflow

Create or update your .github/workflows file to include the Bugster action:
.github/workflows/deploy.yml
name: Deploy and Test

on:
  pull_request:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      # Your deployment steps here
      # ...
      
      - name: Trigger Bugster Tests
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_your_org_id"
          project_id: "your_project_id"
          environment_url: "https://preview.example.com"
Replace the organization_id and project_id with your actual values from the Bugster dashboard.

Action Inputs

Required Parameters

bugster_api_key
string
required
Your Bugster API key. Store this in secrets.BUGSTER_API_KEY for security.
organization_id
string
required
Your Bugster organization ID from the dashboard.
project_id
string
required
Your Bugster project ID from the dashboard.
environment_url
string
required
URL where your application is deployed and accessible for testing.

Optional Parameters

deployment_state
string
default:"success"
Deployment status. Options: success, in_progress, cancelled, failed, error. Bugster only runs tests when set to success.
commit_sha
string
default:"${{ github.sha }}"
Git commit SHA. Automatically filled from GitHub context if not provided.
branch
string
default:"${{ github.ref_name }}"
Git branch name. Automatically filled from GitHub context if not provided.
api_base
string
default:"https://api.bugster.app"
Base API URL. Useful for testing or custom deployments.
timeout_seconds
number
default:"60"
Request timeout in seconds.

Action Outputs

status
string
HTTP status code returned by the Bugster API.
response
string
Response body returned by the API (truncated for logging).

Common Use Cases

Basic Pull Request Testing

Test every pull request after deployment:
.github/workflows/pr-test.yml
name: PR Testing

on:
  pull_request:
    branches: [main]

jobs:
  test-deployment:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Bugster
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: "https://terminal-todo-delta.vercel.app"

Multi-Environment Testing

Test different environments with different configurations:
name: Staging Deploy

on:
  push:
    branches: [develop]

jobs:
  deploy-staging:
    runs-on: ubuntu-latest
    steps:
      - name: Notify Bugster (Staging)
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: "https://staging.example.com"
          deployment_state: "success"

Conditional Testing

Only run tests under specific conditions:
.github/workflows/conditional.yml
name: Conditional Testing

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  trigger-tests:
    runs-on: ubuntu-latest
    if: contains(github.event.pull_request.labels.*.name, 'test-required')
    steps:
      - name: Trigger Bugster
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: ${{ env.PREVIEW_URL }}

Deployment State Tracking

Track deployment progress with different states:
.github/workflows/deployment-tracking.yml
name: Deployment with Status Tracking

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Notify Bugster (In Progress)
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: "https://app.example.com"
          deployment_state: "in_progress"
      
      # Your deployment steps here
      # ...
      
      - name: Notify Bugster (Success)
        if: success()
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: "https://app.example.com"
          deployment_state: "success"
      
      - name: Notify Bugster (Failed)
        if: failure()
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: "https://app.example.com"
          deployment_state: "error"

Vercel Integration

.github/workflows/vercel-bugster.yml
name: Vercel + Bugster

on:
  pull_request:

jobs:
  deploy-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Deploy to Vercel
        uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
        id: vercel-deploy
      
      - name: Trigger Bugster Tests
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: ${{ steps.vercel-deploy.outputs.preview-url }}

Netlify Integration

.github/workflows/netlify-bugster.yml
name: Netlify + Bugster

on:
  pull_request:

jobs:
  deploy-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Deploy to Netlify
        uses: nwtgck/actions-netlify@v2.0
        with:
          publish-dir: './dist'
          production-branch: main
          github-token: ${{ secrets.GITHUB_TOKEN }}
          deploy-message: "Deploy from GitHub Actions"
        env:
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
        id: netlify-deploy
      
      - name: Trigger Bugster Tests
        uses: Bugsterapp/bugster-action@v1
        with:
          bugster_api_key: ${{ secrets.BUGSTER_API_KEY }}
          organization_id: "org_abc123def456ghi789jkl"
          project_id: "my-project-1234567890"
          environment_url: ${{ steps.netlify-deploy.outputs.deploy-url }}

Troubleshooting

Real-World Examples

Check out these working implementations:

Next Steps