在查阅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会根据你定义的内容运行pipeline。你的pipeline状态也会通过GitLab展示:

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

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

下一篇翻译敬请期待~

官网GitLab CI/CD英文文档翻译的更多相关文章

  1. GitLab CI/CD的官译【原】

    CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...

  2. 使用 Gitlab CI/CD 实现自动化发布站点到 IIS

    说明 这里先介绍下两个东西 CI/CD.GitLab Runner,当然在此之前你需要对 git 有所了解,关于 git 这里不做说明,可以自行百度. 首先介绍 CI/CD :随着我们开发方式的转变, ...

  3. 前端初探 Gitlab CI/CD

    前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...

  4. Gitlab CI/CD

    Gitlab CI/CD 前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就 ...

  5. .NetCore 配合 Gitlab CI&CD 实践 - 单体项目

    前言 上一篇博文 .NetCore 配合 Gitlab CI&CD 实践 - 开篇,主要简单的介绍了一下 GitLab CI 的持续集成以及持续部署,这篇将通过 GitLab CI 发布一个 ...

  6. GitLab CI/CD持续集成设置

    GitLab CI/CD持续设置 官方文档地址(https://docs.gitlab.com/ee/ci/README.html) GitLab CI.CD功能非常完善,只需要简单几步,就可以完成项 ...

  7. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

  8. .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker

    之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...

  9. .NetCore 配合 Gitlab CI&CD 实践 - 开篇

    引言 这是一个系列的文章,讲述的是一个中小型开发团队如何从零开始使用搭建基建 GitLab 代码托管平台,以及使用 GitLab Runner 实现 CI/CD 的故事.本系列通过部署一个完整的 .n ...

随机推荐

  1. Django(静态文件or路由)

    静态文件 在开发中同创会使用到 css,js,img等静态文件,这里带大家简单的介绍一下django如何处理静态页面, 配置 setting.py文件 STATIC_URL = '/static/' ...

  2. (5)U盘安装Linux系统

    1.前期准备 使用 U 盘安装 Linux 系统,需要准备以下工具: 大容量的U盘(安装 CentOS 6.x 系统,U 盘容量至少 8 G): UltraISO 工具,用来制作 U 盘启动盘.除此之 ...

  3. 2019 Multi-University Training Contest 1 A.Blank(dp)

    题意:现在要你构造一个只有{0,1,2,3} 长度为n且有m个限制条件的序列 问你方案数 思路:dp[i][j][k][now]分别表示四个数最后出现的位置 最后可以滚动数组 优化一下空间 ps:我的 ...

  4. 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program(DFS计算图中所有环的长度)

    题目链接:https://codeforces.com/gym/102361/problem/F 题意 有 \(n\) 个点和 \(m\) 条边,每条边属于 \(0\) 或 \(1\) 个环,问去掉一 ...

  5. hdu 1696 Oulipo(KMP算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686 题意 查询字符串 $p$ 在字符串 $s$ 中出现了多少次,可重叠. 题解 KMP模板题. Ti ...

  6. 【洛谷 p3381】模板-最小费用最大流(图论)

    题目:给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 解法:在Dinic的基础下做spfa算法. 1 #include<cst ...

  7. Codeforces Round #652 (Div. 2)D. TediousLee 推导

    题意: Rooted Dead Bush (RDB) of level 1是只有一个点,如下图 当(RDB) of level i变成(RDB) of level i+1的时候,每一个顶点要进行下面的 ...

  8. java实现定时任务解决方案

    在线corn表达式 1. 总结常见的实现定时任务的几种方法 thread实现 [原理:通过创建一个线程,让他在while循环里面一直运行,用sleep() 方法让其休眠从而达到定时任务的效果.] Ti ...

  9. 02、scrapy安装

    1.安装scrapy 采用pip的安装方式,从豆瓣源获取 pip install -i https://pypi.douban.com/simple/ scrapy 安装过程中会报出错误: build ...

  10. OpenStack Train版-1.安装基础环境&服务

    1. 服务组件的密码 密码名称 描述 ADMIN_PASS admin用户密码 CINDER_DBPASS 块设备存储服务的数据库密码 CINDER_PASS 块设备存储服务的 cinder 密码 D ...