Gitlab-ci 仅转换为具有未知合成的规则

问题描述 投票:0回答:2

我必须将 .gitlab-ci.yml 上的 Syntax 从

only
syntax 更新为
rules
。我做了大部分更改,但我找不到有关以下合成的信息:

deploy-image:
  stage: deploy
  only:
    - stage@helloTeam/Expansion

helloTeam/Expansion
是我们存储库的名称,但我不知道
stage@
的用途。以及如何用规则进行转换。有什么想法吗?

gitlab-ci gitlab-ci.yml
2个回答
0
投票

好吧,我发现目标是非分叉存储库上的分支

stage

与规则等效的是:

  rules:
    - if: '$CI_PROJECT_NAMESPACE == "helloTeam" && $CI_COMMIT_BRANCH == "stage"'

很好奇是否可以定位整个名称,

helloTeam/Expansion
而不仅仅是
helloTeam


0
投票

这记录在仅/除了示例以进行作业控制。

@
符号表示引用存储库路径的开头

及其用法的一个示例:

仅针对父存储库执行作业而不执行分支:

job:
  only:
    - branches@gitlab-org/gitlab
  except:
    - main@gitlab-org/gitlab
    - /^release/.*$/@gitlab-org/gitlab

因此,

foo@bar/baz
中的
only:
表示
foo
是引用(分支名称或特殊关键字),而
bar/baz
是存储库路径。

以下

rules:
可以用作与此等效的使用预定义变量
CI_COMMIT_REF_NAME
CI_PROJECT_PATH

rules:
  - if: $CI_PROJECT_PATH == "bar/baz" && $CI_COMMIT_REF_NAME == "foo"
© www.soinside.com 2019 - 2024. All rights reserved.