Gitlab CICD仅在特定位置发生更改时运行步骤



我想在管道中运行步骤,只有当某些东西在特定方向发生变化时。我尝试了except,只有changesrules,这些都不起作用。有可能满足这个条件吗如果有,我该怎么做?

这是我的配置

test-backend:
stage: test
image: maven:latest
script:
- cd backend
- mvn $MAVEN_CLI_OPTS test
rules:
- changes:
- backend/**

和我对前端有相同的配置,我想只在后端和前端相同的情况下运行测试。

我试着复制这个,我实际上可以。这似乎是管道评估的一个问题。一旦我添加了一个构建,只是呼应的东西,并运行没有changeschanges工作。但如果没有工作,它就不会被选中。

因此,我建议添加像下面这样的作业,以简单地确保管道一直运行。(我知道这可能是次优的,因为它花费构建分钟,但这是一个可能有所帮助的变通方法)

start:
stage: .pre
script: echo something

注意事项

如果你计划在你的合并请求中使用这个,注意你激活了Merged Results for Pipelines——否则每个提交对这些更改都是单独处理的,并且你的合并请求可能会通过构建,因为这些更改已经在以前的提交中完成,而不是最近的提交的一部分!!

最新更新