推送到master时,Gitlab CI会运行两次测试
我有一个Gitlab CI配置,看起来像这样:推送到master时,Gitlab CI会运行两次测试,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我有一个Gitlab CI配置,看起来像这样: 阶段: -试验 -部署 测试: 阶段:测试 仅: -合并请求 -主人 脚本: -笑话——报道 部署: 阶段:部署 仅: -主人 依赖项: -试验 脚本: -部署 我只希望在打开合并请求或合并到master时运行测试,因为我只是在gitlab.com上的免费计划中,我希望节省跑步者的时间 如果我们每次提交都运行单元测试,那么在第3周或第4周,我们的时间总是不足几分钟 在大多数情况下,它是有效的。问题来自于直接推送到master(有时会发生)测试同时
阶段:
-试验
-部署
测试:
阶段:测试
仅:
-合并请求
-主人
脚本:
-笑话——报道
部署:
阶段:部署
仅:
-主人
依赖项:
-试验
脚本:
-部署
我只希望在打开合并请求或合并到master
时运行测试,因为我只是在gitlab.com上的免费计划中,我希望节省跑步者的时间
如果我们每次提交都运行单元测试,那么在第3周或第4周,我们的时间总是不足几分钟
在大多数情况下,它是有效的。问题来自于直接推送到master
(有时会发生)<代码>测试同时运行两次
我在Gitlab文档中找不到任何关于如何正确处理此问题的信息。任何帮助都会很好。事实上,我不明白为什么直接推送到主机会运行您的测试两次,除非您有一个打开的合并请求,该请求将主机作为源分支 您可以通过使用来防止这种情况发生。此外,您应该仅使用而不是
,
/,
除外,因为它们不再是主动开发的
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
when: never
- if: '$CI_COMMIT_BRANCH'
stages:
- test
- deploy
test:
stage: test
script:
- jest --coverage
rules:
- if: '$CI_COMMIT_BRANCH == "master" || $CI_PIPELINE_SOURCE == "merge_request_event"'
deploy:
stage: deploy
dependencies:
- test
script:
- make deploy
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
就是这样。有一个以
master
为源的开放合并请求。这不是我们协议的一部分,所以从来没有考虑过。谢谢你。