系统操作和维护。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。