我能够使用以下语法忽略目录和文件更改。
build:
script: npm run build
except:
changes:
- "*.md"
- "src/**/*.ts"
使用此配置,build
作业将运行,但git更改仅包含*.md
目录中的*.ts
扩展文件或src
文件。他们被忽略了。
但是随后他们弃用了only:changes
,except:changes
语法,并警告使用rules
语法。不幸的是,我似乎找不到使用这种新语法忽略目录和文件更改的方法。
答案 0 :(得分:2)
令人惊讶的是,目前这似乎是不可能的——无论是 except/only
还是 rules
。这似乎是此请求功能的“最佳”未解决问题:https://gitlab.com/gitlab-org/gitlab/-/issues/198688
我想您只能在检测到相关更改时反转逻辑并启用构建(示例改编自 https://docs.gitlab.com/ee/ci/yaml/#ruleschanges):
job:
rules:
- changes:
- relevant/path/file
when: on_success
- changes:
- path/to/config/file
when: never
- when: on_success
答案 1 :(得分:1)
基于documents of rules: changes
,看来Protocol Permission scope string
-------- -----------------------
IMAP https://outlook.office.com/IMAP.AccessAsUser.All
POP https://outlook.office.com/POP.AccessAsUser.All
SMTP https://outlook.office.com/SMTP.Send
必须与when: never
语法一起使用。如下所示:
rules: changes
如果存储库中更改的路径与上述正则表达式匹配,则该作业将不会添加到任何管道。在其他情况下,作业始终将由管道运行。