Skip to content

整一个 .gitlab.yml

在开发工具类项目中,为了提高项目部署效率,gitlab自带的ci/cd是个很不错的选择。

今天介绍一下 一个 .gitlab.yml 的组成机构和作用。

text
stages:
	- build
	- publish

before_script:
	- echo ------ ci set registry ------
	- npm set registry 'npm_registry'

cache:
	paths:
		- ./node_modules/

build_job:
	stage: build
	tags:
		- wand-ui
	script:
		- echo ------ ci build start------
		- npm install
		- npm run build
		- echo ------ ci build end ------
		- echo 'token-info'>.npmrc
		- node ./publish.js
		- echo ------ publish end ------
	only:
		- master

before_script

 before_script用来定义所有job之前运行的命令,包括deploy(部署) jobs,但是在修复artifacts之后。它可以是一个数组或者是多行字符串。

stages

 stages用来定义可以被job调用的stages。stages的规范允许有灵活的多级pipelines。

stages中的元素顺序决定了对应job的执行顺序:

  1. 相同stage的job可以平行执行。
  2. 下一个stage的job会在前一个stage的job成功后开始执行。

接下仔细看看这个例子,它包含了3个stage:

text
stages:
 - build
 - test
 - deploy

首先,所有build的jobs都是并行执行的。 所有build的jobs执行成功后,test的jobs才会开始并行执行。 所有test的jobs执行成功,deploy的jobs才会开始并行执行。 所有的deploy的jobs执行成功,commit才会标记为success 任何一个前置的jobs失败了,commit会标记为failed并且下一个stages的jobs都不会执行。 这有两个特殊的例子值得一提:

如果.gitlab-ci.yml中没有定义stages,那么job's stages 会默认定义为 build,test 和 deploy。 如果一个job没有指定stage,那么这个任务会分配到test stage。

cache

 Gitlab Runner v0.7.0 开始引入。

cache用来指定需要在job之间缓存的文件或目录。只能使用该项目工作空间内的路径。

从GitLab 9.0开始,pipelines和job就默认开启了缓存

如果cache定义在jobs的作用域之外,那么它就是全局缓存,所有jobs都可以使用该缓存。

Jobs

 .gitlab-ci.yml允许指定无限量jobs。每个jobs必须有一个唯一的名字,而且不能是上面提到的关键字。job由一列参数来定义jobs的行为。
text
job_name:
	script: // 要执行的脚本
		- rake spec
		- coverage
	stage: test // 定义job stage
	only:
		- master // 定义一列git分支,并为其创建job
	except: // 定义一列git分支,不创建job
		- develop
	tags: // 定义一列tags,用来指定选择哪个Runner(同时Runner也要设置tags)
		- ruby
		- postgres
	allow_failure: true //允许job失败。失败的job不影响commit状态

tags tags可以从允许运行此项目的所有Runners中选择特定的Runners来执行jobs。

在注册Runner的过程中,我们可以设置Runner的标签,比如ruby,postgres,development。

提到 runner,必须要说明,如果只有 .gitlab.yml 文件却没有 gitlab runner,ci/cd 也是不会执行的。

gitlab runner

有三种配置方式,一般我们采用 Specific Runners 下 Set up a specific Runner manually 就够了。

按照文档提供的流程就可以:

Install GitLab Runner Specify the following URL during the Runner setup: https://git.guahao-inc.com/ Use the following registration token during setup: 9PN8vkZezz1BuAVQcskp Start the Runner! 具体配置中出现的问题后面补上。

Contributors

作者:Long Mo
字数统计:803 字
阅读时长:3 分钟
Long Mo
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs