Go CD 入门

Go CD 是属于在持续集成,持续交付过程中使用的自动化构建工具,可以执行编译,自动化测试,自动部署等等。
在此之前,已经使用过Jenkins工具了,Go CD 的功能和Jenkins差不多,但又有其特点。

Go CD中的某些概念

Task

task是要执行的一个build任务,一般是一个命令行指令

Job

  • 一个Job由多个task组成,每个task按排列顺序执行。
  • 当一个task执行失败,那么这个job就会被认为失败,并且没有其他特殊的设置的话,这个失败的task之后的其他task都不会被执行。
  • 在一个job中的task作为独立的程序运行的,某一个task改变的环境变量不会影响后续的tasks,但是这个task对文件系统的更改在后续的tasks中可见。

Stage

  • 一个Stage由多个job组成,job之间可以相互独立运行,也就是说在Stage之中的job可以并行。
  • 一个job失败了,那么该stage也被认为是失败的,由于stage的job相互独立,所以其他的job还是会继续执行,不受影响。

Pipeline

一个Pipeline由多个stage组成,stage按顺序执行,若是一个stage执行失败了,那么该pipeline也被认为是失败的,并且之后的stage不会继续执行。

Materials

  • Materials是pipeline跑的起因,一般是源代码仓库,例如git、SVN等。
  • 当代码更新的时候,Go Server会持续的获取代码仓库的代码。
  • 在某一个pipeline1中的stage也可以作为另一个pipeline2的Materials,如此在stage执行完毕后会触发pipeline2运行。

Artifacts

Artifacts一般是文件或者文件夹,当job执行完毕后会发布Artifacts,供给用户、后续执行的stage或pipeline使用。

Agent

Go Agents是tasks, jobs, stages 和 pipeline 运行的地方。

Resources

Resources指的是Agent中有的资源,它帮助jobs寻找适合的Agent,当job需要的资源在某agent中都存在的时候,才会使用该agent。

Environments

  • Environments是用来分组的,把有联系agent 和 pipelines分成一组。
  • 一个pipeline最多只能在一个environment中。
  • 一个agent可以在多个environment中,或不属于任何一个environment。
  • 一个agent只能获取到属于和该agent有联系的environment中的pipeline中的jobs;无法获取其他jobs,哪怕这些jobs不属于任何environment。

Environment Variables

  • Environment Variables和Environments没有关系,它是用户在配置中自己定义的变量。这些环境变量与Task在运行时可用的其他环境变量一样。
  • Environment Variables可以在 Environment ,pipelines,stages 和 jobs 中定义。并且下一层的Environment Variables可以重写上一层的,例如jobs重写Environment的变量。
    原文作者:Shengzhi
    原文地址: https://www.jianshu.com/p/45a61b6380e8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞