在查阅GitLab官网的CI/CD功能说明时,全是英文看起来不方便,通过翻译软件自动翻译后“内容失真”,看起来很变扭。查阅了百度上的资料发现很多翻译很老旧,有些甚至是挂羊头卖狗肉。痛定思痛,决定自己翻译分享出来。
下面是第一篇翻译,如有不对的地方请指正。
翻译源文件:
https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html
正文:
.gitlab-ci.yml文件
在使用GitLab CI / CD之前,您需要先具备下面2个条件:
- 一个托管在Git存储库中的应用程序代码库;
- 在该仓库根目录下创建一个叫
.gitlab-ci.yml的CI/CD的配置文件。
在.gitlab-ci.yml
文件中,可以做下面定义:
- 需要运行的脚本;
- 需要引用的其他配置文件和模板;
- 依赖关系和缓存;
- 串行与并行的运行命令;
- 程序可以部署到哪个环境;
- 关键环节是依然自动化运行还是需要手动触发继续运行。
script要被划分在相应的job中,各个job组成了一个很大的pipeline。你可以将多个独立的job组织在一个按定义顺序运行的stages中。
你应该合理的组织job顺序,该顺序应该与你实际的测试流程一致。为了可视化该过程,假设添加到作业中的脚本与你在电脑上运行的CLI命令相同。
当.gitlab-ci.yml
文件添加到仓库根目录里时,GitLab会自动检测到它,然后GitLab Runner程序会自动运行.gitlab-ci.yml中定义的每个job。
示例:一个.gitlab-ci.yml
文件可能包含下面内容:
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
上面例子中,定义在stages中的build stage会先运行,本例中的build stage只有1个:build-code-job,该job的script块中定义了3个脚本:首先打印一些构建提示信息,然后输出Ruby版本,最后运行rake命令
构建项目文件。如果build-code-job成功运行了,则会同时运行stages中的所有test stage,本例中的test stage有2个,job名称分别叫test-code-job1、test-code-job2。
该示例中的完整pipeline由3个job组成,分为两个stages:build
和test
。代码仓库里的任何分支下的任何文件的修改都会触发pipeline的自动运行。
GitLab CI / CD不仅可以执行作业,还会向你显示执行期间发生的情况,类似下面的截图:
你可以为代码程序创建构建策略,GitLab会根据你定义的内容运行pipeline。你的pipeline状态也会通过GitLab展示:
如果有任何问题,可以 回滚更改:
下一篇翻译敬请期待~