1

我正在尝试在 GoCD 构建期间更新我的 git 存储库。这意味着,因为 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 正在轮询。

4

2 回答 2

0

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

在 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

我希望这对你有用:)

于 2017-10-28T18:00:53.243 回答
0

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

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

这可能会有所帮助,因为您可以将自动部署运行到开发阶段,然后手动将成功的构建推送到下一阶段(可能是预发布)。这样,您的有效构建将不会受到推送到您的存储库触发的新构建的影响。

或者你可以把它放在你的第一阶段,你的整个管道不会被推送到 repo 触发,而是你进入 GUI 并自己触发它。

于 2018-04-19T14:43:57.677 回答