陈奇网络工作室

gitlab-ci.yml语法

系统操作和维护。gitlab-ci.yml。gitlab-ci.yml?用来配置?CI?如何处理你的项目?该文件位于仓库的根目录中。

有新内容的时候?推?到仓库,还是代码合并后?GitLab?会去找吗?gitlab-ci.yml?文件,如果文件存在?跑步者?将根据该文件的内容启动。建造?这次?提交?gitlab-ci.yml?使用?YAML?语法上,需要特别注意缩进格式,用空格缩进,不?标签?缩进。

阶段

阶段?代表施工阶段,也就是上面提到的过程。默认有三个?阶段?建造?测试?部署?我们能再做一次吗?管道?中定义了多少个?阶段?这些?阶段?将具有以下特征:

全部?阶段?将按顺序运行,即当。舞台?你做完后,下一个?舞台?将开始。

只有当所有?阶段?建成后,管道就成功了。

如果他们中的任何一个。舞台?失败,那接下来呢?阶段?将不被执行,并且管道失败。

乔布斯

乔布斯?代表一项建筑工作。舞台?在里面进行的工作。我们能进去吗?阶段?里面定义了多少?乔布斯?这些工作将具有以下特点:

1.一样?舞台?在?乔布斯?将被并行执行

2.一样?舞台?在?乔布斯?当执行成功后,我该怎么做?舞台?会成功的。

3.如果有的话?工作?那就是失败了。舞台?失败,即管道失败。

抑制

一定是在任务里?剧本?部分。

例子

#定义阶段。任务将按此顺序执行。

阶段:

建造

测试

部署

#定义工作(任务)

工作1:

?阶段:测试

?标签:

?XX #只有标有XX的跑步者才能执行此任务。

?仅:

?-dev #只有dev分支提交代码来执行这个任务。它也可以是分支名称或触发器名称。

?/未来。* $/#正则表达式,只执行future-开头的分支。

?脚本:

?echo我是job1

?echo I处于测试阶段

#定义工作

工作2:

?Stage: test #如果这里没有定义Stage,默认情况下也是test。

?仅:

?master #只有master分支提交代码来执行此任务。

?脚本:

?echo我是job2

?echo I处于测试阶段

?Allow_failure: true #允许失败,即不影响下一次构造。

#定义工作

工作3:

?阶段:构建

?除了:

?-dev #除了dev分支,所有分支都提交代码来执行这个任务。

?脚本:

?echo我是job3

?echo我正处于构建阶段

#定义工作。job4: #对于一个暂时不想执行的作业,可以选择在它前面加一个.这样会跳过这个任务,否则需要注释掉这个job4和标记为deploy的stage。

?阶段:部署

?脚本:

?echo我是job4

# template,相当于一个公共函数,在有重复任务的时候非常有用。job_template: job_definition #创建锚点,\' \\\'job_definition\\\' \ '

?图像:ruby:2.1

?服务:

?postgres

?Redis

测试1:

?* job _ definition # merge with anchor \ \ ' \ \ \ ' job _ definition \ \ \ ' \ \ '

?脚本:

?测试1项目

测试2:

?* job _ definition # merge with anchor \ \ ' \ \ \ ' job _ definition \ \ \ ' \ \ '

?脚本:

?测试2项目

#以下都相当于全局变量,都可以添加到一个特定的作业中,这个作业会被子作业覆盖。

之前_脚本:

echo每个作业将在之前执行。

出口MVN主页

导出JAVA_HOME

Java版本

sh/home/git lab-runner/kill . sh

脚本之后:

echo将在每次作业后执行。

变量:#变量

?DATABASE _ URL:postgres://postgres @ postgres/my _ DATABASE #您可以在作业中将此变量与${DATABASE_URL}一起使用。常用的预定义变量有CI_COMMIT_REF_NAME(项目所在的分支或标签名),CI_JOB_NAME(任务名),CI_JOB_STAGE(任务阶段)

?GIT_STRATEGY: none #GIT策略,它定义了拉取代码的方式。有三种方式:clone/fetch/none,默认是clone,最慢。每走一步,job都会克隆一次代码。我们通常将其设置为none,并将其设置为获取特定任务以满足需求。毕竟不是每一步都需要新代码,这不符合我们的测试流程。

缓存:#缓存

?#因为缓存在不同的管道和任务之间共享,并且可能被覆盖,所以有时需要设置密钥。

?Key: ${CI_COMMIT_REF_NAME} #启用每分支缓存。

?# key:$ ci _ job _ name/$ ci _ commit _ ref _ name #启用每个任务和每个分支缓存。需要注意的是,如果您在windows中运行这个脚本,您需要将$改为%。

?Untracked: true #缓存Git没有跟踪的所有文件。

?路径:#以下两个文件夹将被缓存,并将在下一次构建时解压缩。

?节点模块/

?距离/

跳过作业

如果你的呢?提交?信息包含?【ci跳过】?还是?【跳过ci】?不管情况如何,这?提交?会被创造出来,但是?工作?将被跳过

版本回滚

阶段:

-?建设

-?部署

构建_作业:

?阶段:构建

?标签:

?测试1

?脚本:

?这是一个测试!

开发作业:

?阶段:部署

?标签:

?测试1

?环境:

?名称:v2

?网址:http://www.test.com

?脚本:

?echo这是部署!

环境:在部署阶段配置,用于环境的后续版本回滚。

红色部分是网址。回滚时单击它可直接跳转到指定位置。

手动执行部署。

阶段:

-?建设

-?部署

构建_作业:

?阶段:构建

?标签:

?测试1

?脚本:

?这是一个测试!

开发作业:

?阶段:部署

?标签:

?测试1

?环境:

?名称:v2

?网址:www.baidu.com

?脚本:

?echo这是部署!

?什么时候:总是#不管前面的步骤成功与否,这一步总会进行下去。它有几个值:on_success(默认值)\ \ on _ failure \ \ \ Always \ \ \ Manual(手动执行)。

每次提交代码,都会自动触发构建和发布。生产的建立和发布需要手动点击按钮,通过when: manual实现。

什么时候?用于实现在出现故障或操作失败时运行的作业。

什么时候?可以设置为下列值之一:

on _成功?-只有当当前阶段的所有工作都成功时,才会执行该工作。这是默认值。

on _失败?-仅当当前阶段中至少有一个作业失败时,才执行该作业。

总是吗?——不管前一阶段如何,继续开展工作。

手动?-手动执行作业(在GitLab 8.10中添加)

码头工人执行人

所有作业的执行环境都是指定docker映像生成的容器,每个作业都会生成一个容器,并在作业结束后立即销毁。

拉动策略

使用docker或docker机器执行器时,可以通过设置pull_policy来决定Runner如何拉docker镜像。Pull_policy有三个值:

Always —— Runner总是从远程位置提取docker映像。

If-not-present 3354 Runner会先检查本地是否有镜像,如果有,就使用本地镜像,如果没有,就从远程位置拉。

Never —— Runner总是使用本地映像。

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3