1. Resources
  2. /
  3. Plugins
  4. /
  5. jellyfish-buildkite-plugin

Jellyfish Buildkite Plugin

A Buildkite plugin that automatically sends deployment events to Jellyfish’s DevOps API after successful builds. This enables seamless integration between your Buildkite CI/CD pipelines and Jellyfish’s deployment tracking system.

Features

  • 🚀 Automatically triggers on successful builds
  • 📊 Sends structured deployment data to Jellyfish
  • 🏷️ Supports custom labels and metadata
  • ⚡ Uses efficient post-command hooks
  • 🔒 Secure API token authentication

Usage

Add the plugin to your Buildkite pipeline’s pipeline.yml:

steps:
  - label: "Deploy to Production"
    command: "./deploy.sh"
    plugins:
      - jellyfish#v1.0.0:
          webhook-url: "https://webhooks.jellyfish.co/deployment"
          api-token: "${JELLYFISH_API_TOKEN}"
          name: "production-deployment"
          labels:
            - "environment:production"
            - "service:api"
            - "region:us-east-1"

Configuration

Required Parameters

ParameterTypeDescription
webhook-urlstringThe Jellyfish deployment webhook URL
api-tokenstringYour Jellyfish API token for authentication

Optional Parameters

ParameterTypeDefaultDescription
reference-idstring$BUILDKITE_BUILD_IDUnique identifier for this deployment
namestring$BUILDKITE_PIPELINE_SLUGName of the deployment
repo-namestring$BUILDKITE_REPORepository name (e.g., ‘org/repo’)
labelsarray[]List of labels for categorizing the deployment
source-urlstring$BUILDKITE_BUILD_URLURL to the source/build that triggered this deployment

Payload Structure

The plugin sends a JSON payload with the following structure:

{
  "reference_id": "build-123",
  "is_successful": true,
  "name": "my-service-deployment",
  "deployed_at": "2025-08-07T12:34:56Z",
  "repo_name": "org/my-repo",
  "commit_shas": ["abc123def456"], // pragma: allowlist secret
  "labels": ["environment:production", "service:api"],
  "source_url": "https://buildkite.com/org/pipeline/builds/123"
}

Environment Variables

The plugin automatically uses the following Buildkite environment variables as defaults:

  • BUILDKITE_BUILD_ID - For reference_id
  • BUILDKITE_PIPELINE_SLUG - For deployment name
  • BUILDKITE_REPO - For repo_name
  • BUILDKITE_BUILD_URL - For source_url
  • BUILDKITE_COMMIT - For commit_shas

Security

  • Store your Jellyfish API token as a secure environment variable
  • The plugin only sends data on successful builds (non-zero exit codes are skipped)
  • All data is sent over HTTPS to Jellyfish’s secure endpoints

Requirements

The plugin requires the following tools to be available on your Buildkite agents:

  • curl - For HTTP requests
  • jq - For JSON processing

Examples

Basic Usage

plugins:
  - jellyfish#v1.0.0:
      webhook-url: "https://webhooks.jellyfish.co/deployment"
      api-token: "${JELLYFISH_API_TOKEN}"

Advanced Usage with Custom Labels

plugins:
  - jellyfish#v1.0.0:
      webhook-url: "https://webhooks.jellyfish.co/deployment"
      api-token: "${JELLYFISH_API_TOKEN}"
      name: "api-service-production"
      reference-id: "deploy-${BUILDKITE_BUILD_NUMBER}"
      labels:
        - "environment:production"
        - "service:api"
        - "version:${BUILDKITE_TAG}"
        - "region:us-east-1"

Multiple Environment Deployments

steps:
  - label: "Deploy to Staging"
    command: "./deploy.sh staging"
    plugins:
      - jellyfish#v1.0.0:
          webhook-url: "https://webhooks.jellyfish.co/deployment"
          api-token: "${JELLYFISH_API_TOKEN}"
          name: "staging-deployment"
          labels: ["environment:staging"]

  - wait

  - label: "Deploy to Production"
    command: "./deploy.sh production"
    plugins:
      - jellyfish#v1.0.0:
          webhook-url: "https://webhooks.jellyfish.co/deployment"
          api-token: "${JELLYFISH_API_TOKEN}"
          name: "production-deployment"
          labels: ["environment:production"]

Testing

Quick Test

Run the test runner to verify the plugin works:

./test.sh

Test Options

./test.sh --quick      # Quick local test only
./test.sh --full       # Comprehensive test suite
./test.sh --payload    # JSON payload validation
./test.sh --all        # All tests (default)

This will simulate a Buildkite environment and test all functionality.

For detailed testing instructions, see tests/README.md.

Troubleshooting

Common Issues

  1. Plugin not triggering: Ensure your build step exits with code 0 (success)
  2. Authentication errors: Verify your API token is correct and has proper permissions
  3. Missing dependencies: Ensure curl and jq are installed on your Buildkite agents
  4. Network issues: Check that your agents can reach the Jellyfish webhook URL

Debug Information

The plugin provides clear logging output:

  • 🚀 Sending deployment webhook to Jellyfish... - Plugin is starting
  • ✅ Deployment webhook sent successfully to Jellyfish! - Success
  • ⚠️ Failed to send deployment webhook to Jellyfish... - Error occurred

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test with a real Buildkite pipeline
  5. Submit a pull request

License

This plugin is open source. See the repository for license details.

Support

For issues related to:

  • Plugin functionality: Open an issue in this repository
  • Jellyfish integration: Contact Jellyfish support
  • Buildkite platform: Refer to Buildkite documentation

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started with a 30-day free trial. No credit card required.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. Comparisons

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for AI/ML
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2025