.l配置⽂件详解
⼀.什么是l⽂件
GitLab提供持续集成服务。如果
将.l⽂件添加到存储库的根⽬录,并将GitLab项⽬配置为使⽤Runner,则每次提交或推送都会触发CI 管道。
该.l⽂件是您配置CI如何处理项⽬的位置。它位于存储库的根⽬录中。
在对存储库进⾏任何推送时,GitLab都会查该.l ⽂件,并根据该⽂件的内容在Runners上启动作业。
因为.l是在存储库中并且受版本控制的,所以旧版本仍然可以成功构建,fork可以轻松使⽤CI,分⽀可以具有不同的管道和作业,并且您拥有CI的唯⼀真实来源。您可以.l
在我们的博客中阅读有关使⽤它的原因的更多信息
⼯作是:
定义了约束,指出应在什么条件下执⾏它们。
具有任意名称的顶级元素,并且必须⾄少包含script⼦句。
不限制可以定义多少个。
job1:
script: "execute-script-for-job1"
job2:
script: "execute-script-for-job2"
作业名称不可⽤
每个作业必须具有唯⼀的名称,但是有⼀些保留keywords名称不能⽤作作业名称:
image
services
stages
types
before_script
after_script
variables
cache
include
⼆配置参数详解
stages
定义pipeline的全部阶段(stage),阶段内所有任务并⾏执⾏,全部执⾏成功开始下⼀阶段任务,任何阶段内任意job执⾏失败都会导致pipeline失败,所有stage,job执⾏成功后pipeline会显⽰pass。如果未定义stages,则默认有build、test、deploy三个阶段,如果未定义stage,则默认test阶段
stages:
- build
- deploy
- test
variables
在作业级别上定义作业变量。
script
由runner执⾏的shell脚本
image
使⽤的docker 镜像,这⾥docker镜像的地址,也可⽤:image:name和image:entrypoint。
services
使⽤docker服务映像。也可⽤:services:name,services:alias,services:entrypoint,和services:command。before_script
执⾏作业之前执⾏的⼀段shell脚本
after_script
执⾏完作业执⾏⼀段的shell脚本
stage
定义⼀个作业阶段(默认值:)test。
only/except
⽤于设置作业策略以限制创建作业的时间
rules
件列表,⽤于评估和确定作业的选定属性,以及是否创建该作业。不能与only/ ⼀起使⽤except
job:
script: "echo Hello, Rules!"
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME  == "master"'
when: always
- if: '$VAR  =~ /pattern/'
when: manual
- when: on_success
retry
发⽣故障时可以⾃动重试作业的时间和次数。
timeout
定义⾃定义作业级别的超时,该超时优先于项⽬范围的设置。
include
允许此作业包括外部YAML⽂件。也可⽤:include:local,include:file,include:template,和include:remote。interruptible
定义在通过新的运⾏使其冗余时是否可以取消作业。
resource_group
限制作业并发。
when
when ⽤于实现在发⽣故障或发⽣故障时运⾏的作业。
when 可以设置为以下值之⼀:
on_success-仅当先前阶段中的所有作业都成功(或因为已标记,被视为成功allow_failure)时才执⾏作业。这是默认值。
on_failure -仅在前⼀阶段中的⾄少⼀项作业失败时才执⾏作业。
always -执⾏作业,⽽不管先前阶段的作业状态如何。
manual-⼿动执⾏作业(在GitLab 8.10中已添加)。在下⾯阅读有关⼿动操作的信息。
delayed-⼀定时间后执⾏作业(在GitLab 11.14中已添加)。在下⾯阅读有关延迟动作的信息
stages:
- build
- cleanup_build
- test
- deploy
- cleanup
build_job:
stage: build
script:
- make build
cleanup_build_job:
stage: cleanup_build
script:
- cleanup build when failed
when: on_failure
test_job:
stage: test
script:
- make test
deploy_job:
stage: deploy
script:
- make deploy
when: manual
cleanup_job:
stage: cleanup
script:
- cleanup after jobs
when: always
when:manual
⼿动操作是⼀种特殊类型的作业,不会⾃动执⾏,需要由⽤户显式启动。⼿动操作的⽰例⽤法是部署到⽣产环境。可以从管道,作业,环境和部署视图开始⼿动操作。在环境⽂档中阅读更多
内容。
⼿动操作可以是可选的或阻⽌的。阻⽌⼿动操作将在定义该操作的阶段阻⽌管道的执⾏。当有⼈通过单击播放按钮执⾏阻⽌⼿动操作时,可以恢复管道的执⾏。
当管道被阻塞时,如果设置了“管道成功时合并”,则不会合并。阻塞的管道也确实具有特殊状态,称为⼿动。使⽤when:manual语法时,默认情况下⼿动操作是⾮阻塞的。如果要进⾏⼿动操作阻⽌,则必须在中添加
allow_failure: false到作业的定义.l。
environment
environment⽤于定义作业部署到特定环境。如果environment指定且不存在该名称下的环境,则将⾃动创建⼀个新环境
environment:url
git使用详解这是⼀个可选值,设置该值时,它将在GitLab中的不同位置显⽰按钮,单击这些按钮会将您带到定义的URL。
在以下⽰例中,如果作业成功完成,它将在合并请求和环境/部署页⾯中创建指向的按钮

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。