concourse-ci について
Concourse v8.0 以降のパイプライン作成、リファクタリング、トラブルシューティングを支援するスキルです。設定ガイド、移行情報、注意点、サンプル、構文検証スクリプトをまとめています。
主な機能
- 01パイプライン作成・リファクタリングの指針
- 02リソースとジョブの設定
- 03コンテナイメージのビルドパターン
- 04旧式パターンからの移行情報
- 05サンプルと構文検証スクリプト
活用シーン
- 01Concourse パイプラインの作成・変更
- 02リソースチェックやビルドの障害調査
- 03旧式パイプラインパターンの移行
- 04デプロイ前のパイプライン YAML 検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ netresearch/ concourse-ci-skill --skill concourse-ciインストール後、Claude Code で/concourse-ciを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
checkpoints.yamlexamples/basic-pipeline.ymldocker-build.ymlmodern-ci-cd.ymlmulti-branch.ymlvars-template.ymlreferences/best-practices.mdcore-concepts.mdpipeline-syntax.mdresource-types-catalog.mdresources-guide.mdscripts/validate-pipeline.sh詳細
Concourse CI パイプライン開発
Concourse CI パイプライン(v8.0+)の作成、リファクタリング、最適化に関する専門的なガイダンスです。
使用する場面
- Concourse パイプラインの作成または変更
- リソース(git、registry-image、カスタムタイプ)の設定
oci-build-taskを使用したコンテナーイメージのビルド- リソースのチェック失敗やビルドの問題のトラブルシューティング
- レガシーパターン(docker-image、重複ジョブ)からの移行
クイックリファレンス
| タスク | 最新の方法(推奨) | レガシーな方法(非推奨) |
|---|---|---|
| イメージのビルド | oci-build-task + registry-image | docker-image リソース |
| 複数環境へのデプロイ | across ステップ修飾子 | 環境ごとにジョブを複製 |
| 動的なパイプライン | set_pipeline + インスタンス化されたパイプライン | パイプラインを手動で複製 |
| 通知記号 | UTF-8 文字(例:チェックマークには \u2714、X には \u274c) | HTML エンティティ(例:✓、✗) |
| リソースのスタイル設定 | 常に icon: プロパティを使用 | アイコンなし |
主な概念
パイプラインは、リソース(外部のバージョン管理された成果物)、ジョブ(一連のステップ)、および任意の グループ(UI 上の整理単位)で構成されます。すべての実行はコンテナー内で行われます。
主なステップタイプ:get、put、task、set_pipeline、in_parallel、do、try、load_var。ジョブフック:on_success、on_failure、on_error、on_abort、ensure。注意:on_failure(ゼロ以外の終了コード)と on_error(インフラストラクチャのクラッシュ/OOM)は異なるため、両方に対応してください。fly execute を使用すると、タスクをローカルでテストできます。
ステップタイプの表、ライフサイクルフック、fly CLI の基本については、references/core-concepts.md を参照してください。
重大な注意点
- 強制プッシュ後の Git タグ検出 -- 正規表現のドットをエスケープし、
clean_tags: trueを有効にして、読み取り用と書き込み用のリソースを分けます。fly -t T check-resource -r pipeline/resourceで強制的に再チェックします。references/resources-guide.mdを参照してください。 - registry_mirror の形式の不一致 --
registry-imageはオブジェクト(host: mirror)を、docker-imageは URL 文字列を想定します。CONCOURSE_BASE_RESOURCE_TYPE_DEFAULTSには、それぞれの形式を指定してください。references/resources-guide.mdを参照してください。 - GitLab Container Registry の JWT 認証 -- JWT エンドポイントはレジストリホストではなく、GitLab ホスト上にあります。
Www-Authenticateヘッダーから特定してください。references/resources-guide.mdを参照してください。 - git push --mirror とデフォルトブランチ -- 対象リポジトリのデフォルトブランチは、上流リポジトリに存在している必要があります。存在しない場合、pre-receive フックがプッシュを「pre-receive hook declined」として拒否します。最初のミラープッシュより前に設定してください。
参考資料
references/pipeline-syntax.md-- パイプライン、ジョブ、リソースの完全な YAML スキーマreferences/core-concepts.md-- ステップタイプ、ライフサイクルフック、fly CLI の基本references/resources-guide.md-- Git リソース、registry-image、docker-image からの移行、注意点の詳細references/best-practices.md-- 最適化、トラブルシューティング、通知、デプロイパターンreferences/resource-types-catalog.md-- 利用可能なリソースタイプ(Ansible、Terraform など)
例
examples/ に実際に動作する例があります:
basic-pipeline.yml-- バージョン管理を含むビルド・テスト・デプロイmodern-ci-cd.yml-- oci-build-task、across、build_log_retentionmulti-branch.yml-- set_pipeline を使った動的なブランチパイプラインdocker-build.yml-- コンテナーイメージのビルドとプッシュvars-template.yml-- 変数ファイルの整理
検証
デプロイ前に scripts/validate-pipeline.sh を使用して、パイプラインの構文を確認してください。
コメント
Markdown 対応