如何从bitbucket-pipelines.yml进行git push?

Roh*_*tol 6 git continuous-integration node.js package.json bitbucket-pipelines

我有一个节点项目。我想要做的是在开发人员签入(提交和推送)上,我想运行将在内部执行以下操作的bitbucket管道

  1. npm安装和npm测试
  2. npm版本补丁(增加package.json中的版本)
  3. git push origin master-关注标签
  4. npm发布

bitbucket-pipelines.yml

    image: node:8
    pipelines:
      default:
        - step:
            caches:
              - node
            script:
              - npm version patch
              - git push origin develop --follow-tags
              - npm publish
Run Code Online (Sandbox Code Playgroud)

我在“ git push origin master --follow-tags”上遇到问题。如何授予管道推送回存储库的权限?

我也想知道这是否会触发一个循环,因为我增加了package.json版本并进行了检入(提交和推送),所以我的位桶管道再次执行?

在使用bitbucket-pipelines的nodejs项目上,使用版本号递增的CI / CD的推荐方式是什么?

干杯,罗希特

cra*_*zko 6

尽管没有与nodejs开发相关联,但我也面临着类似的问题。

构建失败的原因git push是,您可以在“ 管道”>“ SSH密钥”设置下生成的ssh密钥对没有写访问权限。

删除生成的配对,并使用与您的帐户关联的配对。您还必须在推送之前创建一个提交。添加到您的bitbucket-pipelines.yml中:

- git config user.email <your@email>
- git add package.json
- git commit -m "updated version"
Run Code Online (Sandbox Code Playgroud)

第二个问题的答案是:是的,它将触发另一个构建,因为默认情况下每次提交都会触发它们。就我而言,后续构建产生的输出完全相同,导致整个构建失败git commit。它是最新的起源,因此停止了重复触发。

每次更改都具有两个构建版本(其中一个总是失败)并不是很好。解决方案可能是通过将自定义部分添加到config中来手动运行构建。

最终,由于缺乏自动化,我放弃了整个想法,用管道推了些什么。

更新

现在,还可以计划构建。使用此功能,也可以避免重复触发。

  • 如果您在提交消息中的任何位置包括[跳过ci]或[ci跳过],则不应重新触发构建(https://confluence.atlassian.com/bitbucket/bitbucket-pipelines-faq-827104769.html) (9认同)