文档阅读 - GoCD 基本概念

查看原文

这篇文档 描述了 GoCD (一款持续交付工具)系统中的基本概念,通过这些概念我们可以快速感受这个系统的一些设计理念。

  • Task:一般来说对应一条命令。
  • Job: 多个 Tasks 组成一个 Job。Tasks 按定义顺序逐个运行,除非某个 Task 运行失败整个 Job 算作失败。需要注意,每个 Task 有自己独立的运行环境,是个独立程序,这样可以保证 Tasks 之间互相不会影响。
  • Stage:多个 Jobs 组成一个 Stage。Jobs 并发运行,当某个 Job 运行失败其它 Jobs 仍然运行但整个 Stage 算作失败。
  • Pipeline:多个 Stage 组成一个 Pipeline。Stages 按照定义顺序运行,当某个 Stage 运行失败其它 Stages 不会运行,整个 Pipeline 算作失败。
  • Material:能触发 Pipeline 运行的东西,可以是 Git,SVN,时间,或者混合。Pipeline 中的 Stage 也可以作为别的 Pipeline 的 material。
  • Fan-out, Fan-in: 前者一个 Stage 触发多条 Pipeline,后者多个 Stage 执行完成后触发一条 Pipeline。
  • Artifacts: Job 可以发布构件,可以是文件或者目录,其他用户或者下游 Stage / Pipeline 可以使用。
  • Agent:运行 Task 的物理机。Agents 会从 GoCD Server 收到指派给他们的任务,然后运行,再将结果返回给 Server。
  • Environment:用来区隔 Pipeline 和 Agent 的东西。具体来说配置的时候将这些 Agent 和 Pipeline 关联到某个特定的环境。
  • Environment Variables:和 Environment 半分钱关系没有,单纯用来存储配置的。可以在环境,可以在 Pipeline,Stage,也可以在 Job 中。