代码之家  ›  专栏  ›  技术社区  ›  Jens Elstner

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

  •  1
  • Jens Elstner  · 技术社区  · 8 年前

    我试图在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正在轮询。

    2 回复  |  直到 8 年前
        1
  •  0
  •   Sanjay Achar    8 年前

    将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
    

    我希望这对你有帮助:)

        2
  •  0
  •   Joe    8 年前

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

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

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

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