CICD(2)——pipeline语法(2)

一、简介

本篇文章继自上一篇文章,仍用于记录学习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"

你可能感兴趣的:(CICD,1024程序员节,ci/cd)