GitLab CI/CD语法二

70 阅读2分钟

tags

指定runner

用于从允许运行该项目的所有Runner列表中选择特定的Runner,在Runner注册期间,您可以指定RUnner的标签

before_script:
  - echo "before script"  # 每次job运行时候会输出,

variables:
  DOMAIN: example.com
stages:
  - build
  - deploy

build-code:  # 一个作业(job),该作业名称为build-code
  before_script:
    - echo "before script"  # script运行之前会执行
  stage: build
  tags:
    - deploy  # 使用该runner执行构建
  only:
    - main  # 只构建master分支
  script:
    - echo "mvn clean"
    - echo "mvn install"
    - echo "$DOMAIN"
  after_script:
    - echo "after script"  # 作业执行完之后会执行

deploy-app:  # 在该job中未定义before_script和afeter_script默认会走全局的
  stage: deploy # 其中一个stage
  tags:
    - deploy
  only:
    - main
  script:
    - echo "hello deploy"

after_script:
  - echo "after script"  # 作业执行完之后会执行

image.png

allow_failure 允许失败

allow_failure允许作业失败,默认值为false。启用后,如果作业失败,该作业将在用户界面中显示橙色警告,但是,管道的逻辑流程将认为作业成功/通过,并且不会阻塞。假设所有其他作业均成功,则该作业的阶段及其管道将显示相同的橙色警告。但是,关联的提交将被标记为“通过“,而不会发出警告。

job1:
  stage: test
  script:
    - execute_script_that_will_fail
  allow_failure: true

when 控制作业的运行

  • on_success 前面阶段中的所有作业都成功时才执行作业,默认值。
  • on_failure 当前面阶段出现失败时执行
  • always 总是执行作业
  • manual 手动执行作业
  • deployed 延迟执行作业

retry 重试

  • 配置在失败的情况下重试作业的次数
  • 当作业失败并配置了retry,将再次处理该作业,直到到达retry关键字指定的次数
  • 如果retry设置为2,并且作业在第二次运行成功(第一次重试),则不会再次重试,retry值必须是一个正整数,等于或大于0,但小于或等于2(最多两次重试,总共运行3次)
unittest:
  stage: test
  tags:
    - build
  only:
    - master
  script:
    - ech "run test"  # 这里故意写错了
  retry:
    max: 2
    when:
      - script_failure