我有一个如下所示的 gitlab 规则条件。
'$ACTION && $REGION && $ROLE_ARN && $PACKAGEURL && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && $PACKAGEURL != "" && $REGION != ""'
Run Code Online (Sandbox Code Playgroud)
想要稍微修改一下,以便它应该检查上面的 PACKAGEURL 或 BUILDRPMREQUIRED 是否存在。
尝试保持如下,但即使未提供 PACKAGEURL 或 BUILDRPMREQUIRED 也能运行。
'$ACTION && $REGION && $ROLE_ARN && ($PACKAGEURL || $BUILDRPMREQUIRED) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ($PACKAGEURL != "" || $BUILDRPMREQUIRED != "") && $REGION != ""'
Run Code Online (Sandbox Code Playgroud)
我遵守如下规则。
.ifawsfulldeploy:
rules:
- if: '$ADMIN_SERVER_IP && $ADMIN_SERVER_IP != ""'
when: never
- if: '$ACTION && $REGION && $ROLE_ARN && ($PACKAGE_URL || $BUILDRPMREQUIRED) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ($PACKAGE_URL != "" || $BUILDRPMREQUIRED != "") && $REGION != ""'
when: always
Run Code Online (Sandbox Code Playgroud)
其他规则应该在那里,只有变量我收到语法错误。
.ifawsfulldeploy:
rules:
- if: '$ADMIN_SERVER_IP && $ADMIN_SERVER_IP != ""'
when: never
- if: '$ACTION && $REGION && $ROLE_ARN && ( $PACKAGE_URL || $BUILDRPMREQUIRED ) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ( $PACKAGE_URL != "" || $BUILDRPMREQUIRED != "" ) && $REGION != ""'
when: always
Run Code Online (Sandbox Code Playgroud)
在我的工作中。
only:
variables:
- $PACKAGE_URL
- $BUILDRPMREQUIRED
extends:
- .ifawsfulldeploy
Run Code Online (Sandbox Code Playgroud)
小智 5
我是 Gitlab 的新人,但我也有同样的问题
$FOO != null
Run Code Online (Sandbox Code Playgroud)
条件对我有帮助。希望它也对你有帮助!
小智 3
您是否尝试过仅对变量使用规则?就像 Gitlab 文档中的这个例子一样:
job1:
script:
- echo This rule uses parentheses.
only:
variables:
- ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop") && $MY_VARIABLE
Run Code Online (Sandbox Code Playgroud)
来源:https://docs.gitlab.com/ee/ci/jobs/job_control.html#only-variables-- except-variables-examples
| 归档时间: |
|
| 查看次数: |
15190 次 |
| 最近记录: |