一、简介
本篇文章继自上一篇文章,仍用于记录学习CICD时的yaml配置文件语法规则
二、关键字
tags/allow_failure/when/retry/timeout/parallel
1. tags
用于从允许运行该项目的所有Runner列表中选择特定的Runner,在Runner注册期间,您可以指定Runner的标签
windows job:
stage:
- build
tags:
- windows
script:
- echo Hello, %USERNAME%!
osx job:
stage:
- build
tags:
- osx
script:
- echo "Hello, $USER!"
2. allow_failure
allow_failure允许作业失败,默认值为false。启用后,如果作业失败,该作业将在用户界面中显示橙色警告. 但是,管道的逻辑流程将认为作业成功/通过,并且不会被阻塞。 假设所有其他作业均成功,则该作业的阶段及其管道将显示相同的橙色警告。但是,关联的提交将被标记为"通过”,而不会发出警告
job1:
stage: test
script:
- execute_script_that_will_fail
allow_failure: true
3. when
on_success
前面阶段中的所有作业都成功(或由于标记为allow_failure
而被视为成功)时才执行作业。 这是默认值on_failure
当前面阶段出现失败则执行always
-执行作业,而不管先前阶段的作业状态如何,放到最后执行。总是执行
① manual 手动
manual
-手动执行作业,不会自动执行,需要由用户显式启动. 手动操作常常用于部署到生产环境. 可以从管道,作业,环境和部署视图开始手动操作
比如在deploy阶段添加manual,则流水线运行到deploy阶段为锁定状态,需要手动点击按钮才能运行deploy阶段
② delayed 延迟
delayed
延迟一定时间后执行作业(在GitLab 11.14中已添加)
有效值'5',10 seconds,30 minutes, 1 day, 1 week
before_script:
- echo "before-script!!"
variables:
DOMAIN: example.com
stages:
- build
- test
- codescan
- deploy
build:
before_script:
- echo "before-script in job"
stage: build
script:
- echo "mvn clean "
- echo "mvn install"
- echo "$DOMAIN"
after_script:
- echo "after script in buildjob"
unittest:
stage: test
script:
- ech "run test"
when: delayed
start_in: '30'
allow_failure: true
deploy:
stage: deploy
script:
- echo "hello deploy"
- sleep 2;
when: manual
codescan:
stage: codescan
script:
- echo "codescan"
- sleep 5;
when: on_success
after_script:
- echo "after-script"
- ech
4. retry
配置在失败的情况下重试作业的次数。
当作业失败并配置了retry
,将再次处理该作业,直到达到retry
关键字指定的次数。如果retry
设置为2,并且作业在第二次运行成功(第一次重试),则不会再次重试. retry
值必须是一个正整数,等于或大于0,但小于或等于2(最多两次重试,总共运行3次)
unittest:
stage: test
retry: 2
script:
- ech "run test"