在查阅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:buildtest。代码仓库里的任何分支下的任何文件的修改都会触发pipeline的自动运行。

GitLab CI / CD不仅可以执行作业,还会向你显示执行期间发生的情况,类似下面的截图:

官网GitLab CI/CD英文文档翻译-LMLPHP

 你可以为代码程序创建构建策略,GitLab会根据你定义的内容运行pipeline。你的pipeline状态也会通过GitLab展示:

官网GitLab CI/CD英文文档翻译-LMLPHP

 如果有任何问题,可以 回滚更改:

官网GitLab CI/CD英文文档翻译-LMLPHP

 查看.gitlab-ci.yml文件的完整语法

下一篇翻译敬请期待~

02-22 04:52