如果将变量$ CI_COMMIT_TAG设置为 OR (如果./versions.txt文件已更改),则以下gitlab ci作业将运行。
some-job:
script:
- echo "Do some fancy stuff.";
rules:
- if: $CI_COMMIT_TAG
when: always
- changes:
- ./versions.txt
但是,我需要的是在$ CI_COMMIT_TAG设置为 AND ../versions.txt更改时运行此作业。如果只有其中一项评估为真,我不希望这项工作继续进行。这是“仅/更改”功能中的行为,但唯一(且除外)功能功能较弱且不建议使用。
我现在想用gitlab ci做些什么吗?
答案 0 :(得分:1)
来自Docs:
在以下示例中:
如果Dockerfile或docker / scripts /中的任何文件已更改 AND $ VAR ==“ string value”,我们将手动运行作业。否则,作业将不包含在管道中。
docker build:
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
rules:
- if: '$VAR == "string value"'
changes: # Will include the job and set to when:manual if any of the follow paths match a modified file.
- Dockerfile
- docker/scripts/*
when: manual
您的代码将如下所示。
some-job:
script:
- echo "Do some fancy stuff.";
rules:
- if: $CI_COMMIT_TAG
changes:
- versions.txt
when: manual