Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
推送到master时,Gitlab CI会运行两次测试_Gitlab_Gitlab Ci - Fatal编程技术网

推送到master时,Gitlab CI会运行两次测试

推送到master时,Gitlab CI会运行两次测试,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我有一个Gitlab CI配置,看起来像这样: 阶段: -试验 -部署 测试: 阶段:测试 仅: -合并请求 -主人 脚本: -笑话——报道 部署: 阶段:部署 仅: -主人 依赖项: -试验 脚本: -部署 我只希望在打开合并请求或合并到master时运行测试,因为我只是在gitlab.com上的免费计划中,我希望节省跑步者的时间 如果我们每次提交都运行单元测试,那么在第3周或第4周,我们的时间总是不足几分钟 在大多数情况下,它是有效的。问题来自于直接推送到master(有时会发生)测试同时

我有一个Gitlab CI配置,看起来像这样:

阶段:
-试验
-部署
测试:
阶段:测试
仅:
-合并请求
-主人
脚本:
-笑话——报道
部署:
阶段:部署
仅:
-主人
依赖项:
-试验
脚本:
-部署
我只希望在打开合并请求或合并到
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
为源的开放合并请求。这不是我们协议的一部分,所以从来没有考虑过。谢谢你。