用途:面向 Concourse CI(v8.0+)流水线开发,提供编写、重构、优化与排错的指导,适用于创建或修改流水线、配置资源(git、registry-image、自定义类型)、用 oci-build-task 构建容器镜像、排查资源检查失败或构建问题,以及从 docker-image、按环境重复定义作业等旧模式迁移。
主要能力:给出新旧做法对照——构建镜像推荐 oci-build-task 配合 registry-image,避免 docker-image;多环境部署推荐 across 步骤修饰符,而非为每个环境复制作业;动态流水线用 set_pipeline 与实例化流水线,而非手工复制;通知符号使用 UTF-8 字符(如 \u2714 对勾、\u274c 叉号),不用 HTML 实体;资源配置统一使用 icon: 属性。核心概念上,流水线由资源(外部带版本文档)、作业(步骤序列)和可选的组(界面组织)构成,全部执行在容器中进行。关键步骤类型包括 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 在本地测试任务。
常见陷阱:强制推送后的 Git 标签识别需转义正则点号、启用 clean_tags: true、读写资源分离,并用 fly -t T check-resource -r pipeline/resource 强制重查;registry_mirror 格式不匹配(registry-image 需对象 host: mirror,docker-image 需 URL 字符串),应在 CONCOURSE_BASE_RESOURCE_TYPE_DEFAULTS 中分别提供;GitLab 容器镜像仓库的 JWT 认证端点在 GitLab 主机而非镜像仓库主机,需通过 Www-Authenticate 头发现;使用 git push --mirror 时目标仓库默认分支须先在上游存在,否则 pre-receive 钩子会以 “pre-receive hook declined” 拒绝推送。
使用方式与资料:技能附带 pipeline-syntax、core-concepts、resources-guide、best-practices、resource-types-catalog 等参考文档,examples/ 下提供 basic-pipeline.yml、modern-ci-cd.yml、multi-branch.yml、docker-build.yml、vars-template.yml 等示例,并可用 scripts/validate-pipeline.sh 在部署前校验流水线语法。限制:资料未提供收费、价格、平台或效果方面的信息,具体版本兼容范围以公开资料为准。