workflow:rules:-if:'$CI_PIPELINE_SOURCE == "push"'# 当为 push 的时候才会触发,其他情况下不会触发该流水线when:never# 上面的条件为 true 时,永远不执行-when:always# 上面的条件为 false 时,永远执行stages:# 指定运行的步骤,没有指定就顺序执行-build-deploy-test-rebasebuild1:# job 的名称tags:-k...
rules的基本语法如下: ``` rules: - if: <condition> when: <when> allow_failure: <allow_failure> - when: <when> allow_failure: <allow_failure> ``` 其中,如果只提供了`when`,它将应用于所有作业。如果提供了`if`,则仅当该条件为true时才会运行该作业。 常见的条件包括: - `changes`:检查是否有...
stages: - deploy workflow: rules: - if: $CI_PIPELINE_SOURCE == "trigger" when: always - changes: - .ci/* when: never - when: always triggers: stage: deploy trigger: project: devops6/devops6-gitlabci-demo branch: main strategy: depend ## 状态同步 triggers2: stage: deploy trigger...
目录1.用途2.机制2.1.Rules attributes2.2.Rules clauses2.3.rules:if2.3.1.Commonifclausesforrules2.4.rules:changes2.5.rules:exists3.综合示例3.1.示例1:根据 commit meesage 触发3.2.示例2:根据 Tag 触发 1. 用途? .gitlab-ci.yml 的 rules 配置,能让我们根据自定义的筛选条件,控制 job 是否执行: 这段...
rules 有三个关键字 if:判断条件,如果条件满足时执行该 job,不满足时不执行 job changes:某个或多个文件改变时执行该 job,没有改变时不执行 job exists:文件存在时执行该 job,不存在时不执行 job if if 可以使用多条件,&& 所有条件满足时才会执行该 job,|| 某个条件满足时就会执行该 job stages: # 指定...
depend# 状态同步rules:# 触发规则,test1 目录下的任何文件改变时触发-changes:-test1/*# test1 下的任何文件发生改变就执行when:alwaysbuild-test2:stage:buildtrigger:include:# 运行 test2 目录下的 ci.yml 文件-local:test2/ci.yml# 相对路径strategy:depend# 状态同步rules:# 触发规则,test2 目录下的任何文件...
depend# 状态同步rules:# 触发规则,test1 目录下的任何文件改变时触发-changes:-test1/*# test1 下的任何文件发生改变就执行when:alwaysbuild-test2:stage:buildtrigger:include:# 运行 test2 目录下的 ci.yml 文件-local:test2/ci.yml# 相对路径strategy:depend# 状态同步rules:# 触发规则,test2 目录下的任何文件...
test_changes_rule:script: echo on changerules:- changes:- foo.txt The rules are ignored when pushing a tag -> the pipeline is triggered even if it has nothing to do with thefoo.txtfile Steps to reproduce Create new project Add a file named foo.txt ...
rules使用 stages: - docker_info job2: stage: docker_info tags: - 130-docker script: - echo "Variables are '$GLOBAL_VAR' and '$JOB_VAR'" rules: - if: '$DOMAIN == "example.com"' when: manual - changes: # 下面文件有改变就执行when的条件 - Dockerfile when: manual - exists: # 下...
Can't use rules:if $CI_COMMIT_TAG == "" to run jobs only on commits (not tags). The use of $CI_COMMIT_TAG to identify pipelines triggered by a tag is suggested here: #27863 (closed) I'm also using rules:if to evaluate a custom variable, and rules:changes. That leaves only:ta...