gitlab cicd
目录
cicd工作原理
gitlab-runner
使用流程
- 安装gitlab服务器
- 安装gitlab-runner
- 注册gitlab-runner,在这个步骤中,我们要知道执行器类型,执行器才是真正执行.gitlab-ci.yml脚本的。类型包括shell,docker,k8s等,我们使用的docker。
- 项目根目录下创建.gitlab-ci.yml文件
.gitlab-cli.yml
一个.gitlab-cli.yml我们可以理解为对应一个流水线,也就是pipeline,一个pipeline包含一个或多个作业(job), 每一个作业必须包含一个名称,属于一个阶段(stage),至少包含一个script,作业在特定条件下执行。
stages:
- build
- test
build-code-job:
stage: build
script:
- echo "Check the ruby version, then build some Ruby project files:"
- ruby -v
- rake
test-code-job1:
stage: test
script:
- echo "If the files are built successfully, test some files with one command:"
- rake test1
test-code-job2:
stage: test
script:
- echo "If the files are built successfully, test other files with a different command:"
- rake test2
build 阶段的 build-code-job 作业首先运行。 它输出作业使用的 Ruby 版本,然后运行 rake 来构建项目文件。 如果此作业成功完成,则 test 阶段中的两个 test-code-job 作业将并行启动并对文件运行测试。
示例中的完整流水线由三个作业组成,分为两个阶段,build 和 test。 每次将更改推送到项目中的任何分支时,流水线都会运行。我们可以指定触发的条件必须git分支名。
除了可以指定script之外,还可以指定before-script,after-script。before-script在script在一个shell中执行,before-script失败了会导致整个作业失败,而script失败并不会影响after-script的运行。
作业(job)还可以自动tag,我们知道可以安装注册多个Runner,Runner注册期间可以指定tag,这样我们就可以指定job由哪个runner来执行了。
test-code-job1:
stage: test
script:
- echo "If the files are built successfully, test some files with one command:"
- rake test1
tags:
- windows