【问题标题】:Bitbucket pipeline triggers twice on tag with commitBitbucket 管道在带有提交的标记上触发两次
【发布时间】:2020-03-16 21:40:27
【问题描述】:

我在 Bitbucket 中有一个 CI 管道,用于构建和测试共享的 Node.js 库。如果我们创建标签(例如npm version patch -m "Upgrade to 0.1.2 for bug fix"),新版本必须发布到 npm 存储库。

因此我有以下管道配置:

pipelines:
  default:
    - step: *build-test-sonarcloud
  tags:
    '*':
      - step: *build-test-sonarcloud
      - step: *build-deploy-npm

但是,如果我在“npm version patch”之后推送所有更改,则会启动两个管道。我想这是因为文件“package.json”也被提交了,而不仅仅是一个标签。

我的想法是,在提交标签(有或没有任何文件)的情况下,只应启动“标签”管道。有没有办法只触发该管道并阻止默认管道运行?

【问题讨论】:

    标签: node.js git npm bitbucket npm-publish


    【解决方案1】:

    当您在标签步骤后提及“*”时,这意味着管道将每次运行两次。 您需要提及标签名称,类似于下面的代码

    pipelines:
      default:
        - step: *build-test-sonarcloud
      tags:
        'yourCustomTagName':
          - step: *build-test-sonarcloud
          - step: *build-deploy-npm
    

    现在,每当您使用 yourCustomTagName 推送代码时,这两个步骤都会在管道中运行,如果不是只有一个会运行的话。

    【讨论】:

    • 不幸的是,这似乎不起作用。我已将 tags: '*' 更改为 tags: 'v*'(因为我们将它们命名为 v0.1.1 等)。仍然触发了两个管道。由于版本控制(使用npm version patch),我们无法使用固定的标签名称。
    • 您是否正确标记了您的标签?我的意思是像这样推送你的代码 npm push --tagname confluence.atlassian.com/bitbucket/…
    • 标签由npm version 命令自动创建(参见docs.npmjs.com/cli/version)。也许问题在于,这推送了package.json的新版本,这当然不是标签,而是提交的一部分。
    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2020-04-22
    相关资源
    最近更新 更多