Go.CD - 在构建管道中更新git repo会触发另一个构建

时间:2017-10-28 17:33:25

标签: node.js git continuous-deployment go-cd npm-version

我正在尝试在GoCD构建期间更新我的git repo。这意味着因为Go看到另一个更改,它会触发另一个构建。 是否可以停止重新触发构建?

背景: 我正在构建和发布npm包,我想自动增加预发布版本,所以我不必记住它。

我的管道看起来基本上是这样的:

npm version prerelease --no-git-tag-version
npm publish
git add package.json
git commit -m "Bump prerelease version"
git push origin

如果发布成功,这将更新git中的版本,但是由于Go正在轮询,因此还会触发另一个版本。

2 个答案:

答案 0 :(得分:0)

将CD / CI工具配置为仅在提交指定分支时进行构建,或者您可以创建一个名为“预发布”的新分支,并在提交时配置CD / CI不构建。< / p>

在CD / CI工具中完成此配置后

npm version prerelease --no-git-tag-version
npm publish

// fetching for other branches
git fetch

// Switching your branch 
git checkout pre-release

// Finally committing
git add -m "Your commit message"
git push -u origin pre-release

我希望这对你有用:)

答案 1 :(得分:0)

您可以将管道中的阶段配置为手动触发,例如,如果您在${pipeline_name}.gocd.yaml中将管道设置为代码,那么

  - deploy-to-next-stage:
      approval: manual            <-- You need this!
      jobs:
        deploy:
          tasks:
            ...

这可能会有所帮助,因为您可以将自动部署运行到开发阶段,然后手动将成功的构建推送到下一个阶段(可能是预发布)。通过这种方式,您的构建工作不会受到推送到您的仓库触发的新构建的影响。

或者你可以把它放在你的第一个舞台上,而你的整个管道都不会被推送到回购站触发,而是由你进入GUI并自己触发它。