Gitlab中Pipeline语法三

Pipeline语法三

only/except/rules/workflow

only和except

用分支策略来限制jobs构建:

  • only 定义哪些分支和标签的git项目将会被job执行
  • except定义哪些分支和标签的git项目将不会被job执行

rules 构建规则

  • rules允许按顺序评估单个规则,直到匹配并为作业动态提供属性
  • rules不能与only/except组合使用

可用规则

  • if 如果条件匹配
  • changes 指定文件发生变化
  • exists 指定文件存在

rules-if使用

variables:
  DOMAIN: example.com

codescan:
  stage: condescan
  tags:
    - build
  script:
    - echo "codescan"
  rules:
    - if: '$DOMAIN == "example.com"'
      when: manual
    - when: on_success

Gitlab中Pipeline语法三_第1张图片
rules-changes使用,若果Dockerfile文件发生变化codescan手动执行,若果DOMAIN变量是example.com成功继续执行

codescan:
  stage: codescan
  tags:
    - build
  script:
    - echo "codescan"
    - sleep 5;
  rules:
    - changes:
      - Dockerfile
      when: manual
    - if: "$DOMAIN == "example.com"'
      when: on_success
    - when: on_success

exists使用.若果文件存在则继续执行

codescan:
  stage: codescan
  tags:
    - build
  script:
    - echo "codescan"
    - sleep 5;
  rules:
    - exists:
      - Dockerfile
      when: on_success
     - when: on_failure

workflow-rules管道创建

  • 顶级workflow关键字适用于整个管道,并将确定是否创建管道
  • when: 可以设置为always或never,如果未提供,默认always
#如果变量是example.com创建管道,否则不创建
variables:
  DOMAIN: example.com
workflow:
  rules:
    - if: '$DOMAIN == "example.com"'
      when: always
    - when: never

你可能感兴趣的:(gitlab,git)