Go.CD - 在构建管道中更新 git 回购触发另一个构建
Go.CD - Updating git repo in build pipeline triggers another build
我正在尝试在 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 正在轮询,还会触发另一个构建。
将您的 CD/CI 工具配置为仅在提交到指定分支时才构建,或者您可以创建一个名为 "pre-release" 的新分支并配置 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
我希望这对你有用:)
您可以将管道中的阶段配置为手动触发,例如,如果您将管道设置为代码,请在 ${pipeline_name}.gocd.yaml
.
- deploy-to-next-stage:
approval: manual <-- You need this!
jobs:
deploy:
tasks:
...
这可能对您有所帮助 运行 自动部署到开发阶段,然后手动将成功的构建推送到下一阶段(可能是预发布)。这样,您的工作构建将不会受到推送到您的存储库触发的新构建的影响。
或者你可以把它放在你的第一阶段,你的整个管道不会被推送到 repo 触发,而是你进入 GUI 并自己触发它。
我正在尝试在 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 正在轮询,还会触发另一个构建。
将您的 CD/CI 工具配置为仅在提交到指定分支时才构建,或者您可以创建一个名为 "pre-release" 的新分支并配置 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
我希望这对你有用:)
您可以将管道中的阶段配置为手动触发,例如,如果您将管道设置为代码,请在 ${pipeline_name}.gocd.yaml
.
- deploy-to-next-stage:
approval: manual <-- You need this!
jobs:
deploy:
tasks:
...
这可能对您有所帮助 运行 自动部署到开发阶段,然后手动将成功的构建推送到下一阶段(可能是预发布)。这样,您的工作构建将不会受到推送到您的存储库触发的新构建的影响。
或者你可以把它放在你的第一阶段,你的整个管道不会被推送到 repo 触发,而是你进入 GUI 并自己触发它。