원클릭으로
pipeline-authoring
Helps write and improve Buildkite pipeline YAML configurations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Helps write and improve Buildkite pipeline YAML configurations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Diagnoses Buildkite agent issues like stuck jobs and queue mismatches.
Analyzes failed Buildkite builds to identify root causes and provide fixes.
Shows recent Buildkite build status for a pipeline with pass/fail visibility.
Triggers new Buildkite builds with branch/commit control and safety confirmations.
Unblocks Buildkite builds waiting for manual approval.
Retrieves and displays Buildkite job logs. For debugging failures, use build-debugging instead.
| name | pipeline-authoring |
| description | Helps write and improve Buildkite pipeline YAML configurations. |
Help users write and improve Buildkite pipeline configurations.
| Tool | Purpose |
|---|---|
get_pipeline | Get existing pipeline configuration |
list_pipelines | List all pipelines in the organization |
Also use file reading to examine existing pipeline.yml or .buildkite/ files in the user's codebase.
Understand the goal
Check existing configuration
.buildkite/pipeline.yml or pipeline.ymlbuildkite_get_pipeline if they have an existing pipelineProvide appropriate help
Validate the result
# Environment for all steps
env:
NODE_ENV: "test"
# Default agent configuration
agents:
queue: "default"
# Pipeline steps
steps:
- command: "npm test"
label: ":npm: Tests"
- label: ":test_tube: Tests"
command: "npm test"
# Multiple commands
commands:
- "npm ci"
- "npm test"
# Artifacts to upload
artifact_paths:
- "coverage/**/*"
# Step-specific env
env:
CI: "true"
# Timeout
timeout_in_minutes: 10
# Retry configuration
retry:
automatic:
- exit_status: -1
limit: 2
- wait
# Continue even if previous failed
- wait:
continue_on_failure: true
- block: ":rocket: Deploy"
prompt: "Ready to deploy?"
branches: "main"
fields:
- text: "Reason"
key: "reason"
required: true
- select: "Environment"
key: "env"
options:
- label: "Staging"
value: "staging"
- label: "Production"
value: "production"
- trigger: "deploy-pipeline"
label: ":rocket: Deploy"
build:
branch: "${BUILDKITE_BRANCH}"
commit: "${BUILDKITE_COMMIT}"
env:
DEPLOY_ENV: "production"
- group: ":test_tube: Tests"
steps:
- command: "npm run test:unit"
label: "Unit"
- command: "npm run test:e2e"
label: "E2E"
steps:
- command: "npm ci"
key: "install"
- command: "npm test"
key: "test"
depends_on: "install"
- command: "npm run build"
depends_on:
- "install"
- "test"
- command: "npm run report"
depends_on:
- step: "test"
allow_failure: true
- command: "deploy.sh"
branches: "main"
# Multiple branches
- command: "deploy.sh"
branches:
- "main"
- "release/*"
# Only on main
- command: "deploy.sh"
if: build.branch == "main"
# Only for tags
- command: "release.sh"
if: build.tag =~ /^v[0-9]+/
# Skip draft PRs
- command: "full-tests.sh"
if: build.pull_request.draft != true
# Based on metadata
- command: "deploy.sh"
if: build.meta_data.deploy == "true"
- command: "npm test"
parallelism: 4
# Uses BUILDKITE_PARALLEL_JOB (0-3)
# and BUILDKITE_PARALLEL_JOB_COUNT (4)
- command: "test.sh"
matrix:
setup:
node: ["16", "18", "20"]
os: ["linux", "macos"]
# Creates 6 jobs (all combinations)
agents:
os: "{{matrix.os}}"
env:
NODE_VERSION: "{{matrix.node}}"
- command: "test.sh"
matrix:
setup:
node: ["16", "18", "20"]
adjustments:
- with:
node: "20"
soft_fail: true
# Good - explicit
- command: "build"
key: "build"
- command: "test"
depends_on: "build"
# Avoid - implicit ordering is fragile
- command: "npm run lint"
soft_fail: true
# Or specific exit codes
- command: "npm audit"
soft_fail:
- exit_status: 1
- command: "npm test"
retry:
automatic:
- exit_status: -1 # Agent lost
limit: 2
- exit_status: 255 # Network
limit: 2
- command: "npm test"
timeout_in_minutes: 15
- command: "npm test"
plugins:
- cache#v1.0.0:
paths:
- "node_modules"
key: "npm-{{ checksum 'package-lock.json' }}"
steps:
- label: ":npm: Install"
command: "npm ci"
key: "install"
- label: ":eslint: Lint"
command: "npm run lint"
depends_on: "install"
soft_fail: true
- label: ":jest: Test"
command: "npm test"
depends_on: "install"
- label: ":package: Build"
command: "npm run build"
depends_on:
- "install"
- "test"
steps:
- label: ":test_tube: Test"
command: "npm test"
key: "test"
- wait
- label: ":rocket: Deploy Staging"
command: "deploy.sh staging"
key: "staging"
branches: "main"
- block: ":rocket: Deploy Production?"
branches: "main"
- label: ":rocket: Deploy Production"
command: "deploy.sh production"
branches: "main"
steps:
- label: ":mag: Detect Changes"
command: "scripts/detect-changes.sh"
key: "detect"
- label: ":package: Build API"
command: "npm run build -w api"
if: build.env.API_CHANGED == "true"
depends_on: "detect"
- label: ":package: Build Web"
command: "npm run build -w web"
if: build.env.WEB_CHANGED == "true"
depends_on: "detect"
When helping with pipelines:
Always provide complete, copy-pasteable YAML.
User: Help me set up CI for my Node.js project
1. Ask about test framework, deploy targets, any special needs
2. Provide scaffold:
```yaml
steps:
- label: ":npm: Install"
command: "npm ci"
key: "install"
- label: ":jest: Test"
command: "npm test"
depends_on: "install"
artifact_paths:
- "coverage/**/*"
- label: ":package: Build"
command: "npm run build"
depends_on: "install"
artifact_paths:
- "dist/**/*"
```
3. Explain the structure and ask if they need additions