Concourse CI 流水线管理
Concourse 用资源和 job 描述流水线,通过 fly CLI 上传和管理。它的模型偏函数式:job 的 plan 由 get/task/put 组成,资源版本驱动触发。
fly -t ci login -c https://ci.example.com
fly -t ci set-pipeline -p app -c pipeline.yml
fly -t ci unpause-pipeline -p app
fly -t ci pipelines
fly -t ci jobs -p app
fly -t ci trigger-job -j app/test -w
fly -t ci watch -j app/test
fly -t ci hijack -j app/test
fly -t ci get-pipeline -p app
fly -t ci destroy-pipeline -p app
最小流水线:
resources:
- name: repo
type: git
source:
uri: https://github.com/example/app.git
branch: main
jobs:
- name: test
plan:
- get: repo
trigger: true
- task: unit
file: repo/ci/test.yml
set-pipeline 后流水线默认是暂停的;忘记 unpause-pipeline 会一直不触发。trigger: true 才会在新版本出现时自动触发 job;不写只能手动。fly 的 target 指向不同团队/实例;操作前用 fly targets 确认。hijack 只用于调试,手动改动不会回写到流水线。gitlab-ci — GitLab 流水线github-actions — GitHub 流水线docker — 任务容器运行时