Loading...
Loading...
This skill should be used when the user asks to "migrate to Buildkite", "convert pipelines from Jenkins", "convert GitHub Actions workflows", "convert CircleCI config", "convert Bitbucket Pipelines", "convert GitLab CI", "migrate CI/CD to Buildkite", "switch from Jenkins to Buildkite", "move from GitHub Actions", "plan a CI migration", "convert my CI config", "bk pipeline convert", or "what's the Buildkite equivalent of". Also use when the user mentions migration planning, CI conversion, pipeline conversion, converting workflows, or asks about translating CI/CD configuration from another provider to Buildkite.
npx skill4agent add buildkite/skills buildkite-migrationbk pipeline convert# 1. Install the bk CLI (no login needed for convert)
brew tap buildkite/buildkite && brew install buildkite/buildkite/bk
# 2. Convert the source pipeline file
bk pipeline convert -F .github/workflows/ci.yml
# 3. Find the output in .buildkite/pipeline.github.ymlFor pipeline YAML syntax and step types, see the buildkite-pipelines skill. For other bk CLI commands, see the buildkite-cli skill.
/tmp/.github/workflows/ci.ymlbk pipeline convert -F <tempfile> --output <output-path>bk pipeline convert# macOS and Linux (Homebrew)
brew tap buildkite/buildkite && brew install buildkite/buildkite/bk
# Or download a binary from https://github.com/buildkite/cli/releasesbk auth loginbk pipeline convert -F <source-file>.buildkite/pipeline.<vendor>.yml| Vendor flag | Source CI | Auto-detected from |
|---|---|---|
| GitHub Actions | |
| CircleCI | |
| Jenkins | |
| Bitbucket Pipelines | |
| GitLab CI (beta) | not auto-detected |
| Harness CI (beta) | not auto-detected |
| Bitrise (beta) | not auto-detected |
# GitHub Actions (auto-detected from path)
bk pipeline convert -F .github/workflows/ci.yml
# CircleCI (auto-detected)
bk pipeline convert -F .circleci/config.yml
# Jenkins (auto-detected)
bk pipeline convert -F Jenkinsfile
# Bitbucket Pipelines (auto-detected)
bk pipeline convert -F bitbucket-pipelines.yml
# GitLab CI (explicit vendor required)
bk pipeline convert -F .gitlab-ci.yml --vendor gitlab# Default: saves to .buildkite/pipeline.<vendor>.yml
bk pipeline convert -F .github/workflows/ci.yml
# Custom output path
bk pipeline convert -F .github/workflows/ci.yml --output .buildkite/pipeline.yml
# Pipe from stdin (--vendor required)
cat .github/workflows/ci.yml | bk pipeline convert --vendor github
# Read from stdin with file redirect
bk pipeline convert --vendor circleci < .circleci/config.yml| Flag | Short | Description | Default |
|---|---|---|---|
| | Path to source pipeline file | — (required unless using stdin) |
| | CI vendor; auto-detected if omitted | — |
| | Output file path | |
| — | Cancellation timeout in seconds | |
uses:waitdepends_on${{ secrets.X }}buildkite-agent secret getstageparallelpostnotify:jobsworkflowspipeline.ymlorbsexecutorsdockerrequires:depends_onsave_cacherestore_cachecachepipelines.defaultpipelines.branchesif: build.branch == "X"pipe:stepdepends_on.gitlab-ci.ymlextends:rules:if:artifacts:artifact_pathswaitdepends_ondocker#v5.13.0cache#v1.8.1.buildkite/scripts/$$VAR$VARgroupbk pipeline convertFor cluster and queue setup, see the buildkite-platform-engineering skill. For setting up OIDC to replace static credentials, see the buildkite-secure-delivery skill.
| Mistake | What happens | Fix |
|---|---|---|
| Vendor not auto-detected for gitlab/harness/bitrise | Error: "could not detect vendor from file path" | Pass |
| Large or complex pipelines timing out | Conversion fails with timeout error | Increase timeout: |
| Accepting AI output without review | Converted pipeline has incorrect step ordering or missing dependencies | Review |
| Assuming sequential execution | Steps run in parallel and fail due to missing dependencies | Add |
| Unpinned plugin versions in converted pipelines | Builds break when plugins release breaking changes | Pin every plugin to a full semver version |
Using | Variable expanded at upload time (empty) instead of runtime | Use |