netresearch/concourse-ci-skill

concourse-ci

Use when working with ANY Concourse CI task: writing pipelines, configuring resources, building images with oci-build-task, troubleshooting failing jobs, migrating from legacy patterns, or optimizing CI/CD.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/netresearch/concourse-ci-skill --skill concourse-ci

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Concourse CI Pipeline Development

Expert guidance for writing, refactoring, and optimizing Concourse CI pipelines (v8.0+).

When to Use

  • Creating or modifying Concourse pipelines
  • Configuring resources (git, registry-image, custom types)
  • Building container images with oci-build-task
  • Troubleshooting resource check failures or build issues
  • Migrating from legacy patterns (docker-image, duplicate jobs)

Quick Reference

TaskModern (Recommended)Legacy (Avoid)
Building imagesoci-build-task + registry-imagedocker-image resource
Multi-env deploysacross step modifierDuplicate jobs per env
Dynamic pipelinesset_pipeline + instanced pipelinesManual pipeline duplication
Notification symbolsUTF-8 characters (e.g. \u2714 for checkmark, \u274c for X)HTML entities (e.g. ✓, ✗)
Resource stylingAlways use icon: propertyNo icon

Core Concepts

Pipelines consist of resources (external versioned artifacts), jobs (sequences of steps), and optional groups (UI organization). All execution runs in containers.

Key step types: get, put, task, set_pipeline, in_parallel, do, try, load_var. Job hooks: on_success, on_failure, on_error, on_abort, ensure. Note: on_failure (non-zero exit) differs from on_error (infrastructure crash/OOM) -- handle both. Use fly execute to test tasks locally.

See references/core-concepts.md for step types table, lifecycle hooks, and fly CLI essentials.

Critical Gotchas

  1. Git tag detection after force-push -- Escape regex dots, enable clean_tags: true, separate read/write resources, force recheck with fly -t T check-resource -r pipeline/resource. See references/resources-guide.md.
  2. registry_mirror format mismatch -- registry-image expects an object (host: mirror), docker-image expects a URL string. Provide separate formats in CONCOURSE_BASE_RESOURCE_TYPE_DEFAULTS. See references/resources-guide.md.
  3. GitLab Container Registry JWT auth -- The JWT endpoint lives on the GitLab host, not the registry host. Discover via Www-Authenticate header. See references/resources-guide.md.
  4. git push --mirror and default branch -- Target repo's default branch must exist upstream. If absent, the pre-receive hook rejects the push with "pre-receive hook declined". Set it before the first mirror push.

References

  • references/pipeline-syntax.md -- Complete YAML schema for pipelines, jobs, resources
  • references/core-concepts.md -- Step types, lifecycle hooks, fly CLI essentials
  • references/resources-guide.md -- Git-resource, registry-image, docker-image migration, gotcha details
  • references/best-practices.md -- Optimization, troubleshooting, notifications, deployment patterns
  • references/resource-types-catalog.md -- Available resource types (Ansible, Terraform, etc.)

Examples

Working examples in examples/:

  • basic-pipeline.yml -- Build-test-deploy with versioning
  • modern-ci-cd.yml -- oci-build-task, across, buildlogretention
  • multi-branch.yml -- Dynamic branch pipelines with set_pipeline
  • docker-build.yml -- Container image build and push
  • vars-template.yml -- Variable file organization

Validation

Use scripts/validate-pipeline.sh to check pipeline syntax before deployment.

관련 작업