gitlab-CI管道失败时阻止提交

时间:2018-03-21 17:44:56

标签: git testing gitlab push gitlab-ci

如果管道出现故障,有没有办法防止推送到gitlab?

这是一个有多个工作的gitlab-ci.yml样本。每次推送都会触发此管道。

如果其中一项工作失败,我不希望我的代码被推送到我的存储库中。 (我知道拉取请求存在此功能)。

image: node:9.4.0

cache:
  paths:
  - node_modules/

before_script:
  - npm install

stages:
    - lint
    - test

lint:
  stage: lint
  script:
   - npm run lint

test:
  stage: test
  script:
   - npm run test

1 个答案:

答案 0 :(得分:6)

抱歉,西蒙 - 这不应该是这样的。你需要回购中的东西,所以管道可以运行。

您应该使用分支流,您只允许成功构建/合并请求与develop / master合并。 所以你不必关心在repo中添加失败的代码。你的主要分支始终保持清洁。您可以通过仅允许针对develop / master(受保护的分支)进行合并而不允许direkt推送来强制执行此行为。

对于更简单的事情,你可以使用预提交钩子,只允许推送if if eg。 npm run lint成功。但是运行整个管道对于预提交挂钩来说是很重要的。 (它可能有效,但不是最佳做法)