我想在每种情况下运行 gitlab 作业,除非定义了变量RUN并包含 value run3。
再说一遍:
RUN未定义:运行作业RUN已定义但不包含值run3:运行作业RUN已定义并且包含值run3:请勿运行作业我尝试了以下规则:
rules:
- if: $RUN != null && $RUN == "run3"
when: never
rules:
- if: $RUN != "" && $RUN == "run3"
when: never
rules:
- if: $RUN == "run3"
when: never
Run Code Online (Sandbox Code Playgroud)
RUN如果没有定义变量,则不会运行任何作业。我预计这项工作已经完成。
如何修复它?逻辑上问题出在哪里?
经过一些耗时的试错试验后,我找到了解决方案:由于您无法测试变量是否存在,因此必须以相反的方式创建规则。这意味着,如果值不匹配,则运行作业:
那么正确的规则是:
- if: $RUN != "run3"
when: always
- when: never
Run Code Online (Sandbox Code Playgroud)
第一部分仅计算true变量是否存在并且变量不计算为run3。在这种情况下,作业将运行。
第二部分告诉我们在任何其他情况下都不要运行该作业。
| 归档时间: |
|
| 查看次数: |
10369 次 |
| 最近记录: |