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

标签 node.js git continuous-integration package.json bitbucket-pipelines

我有一个 Node 项目。我想做的是在开发人员 checkin (提交和推送)时,我想运行 bitbucket 管道,它会在内部执行以下操作

  1. npm 安装和 npm 测试
  2. npm 版本补丁(增加 package.json 中的版本)
  3. git push origin master --follow-tags
  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

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

我还想知道这是否会触发一个循环,我的 bitbucket 管道在我增加 package.json 版本并进行 checkin (提交和推送)后再次执行?

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

干杯, 罗希特

最佳答案

我遇到了类似的问题,但与 nodejs 开发无关。

git push 上构建失败的原因是您能够在 Pipelines > SSH keys 设置下生成的 ssh key 对没有写入权限。

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

- git config user.email <your@email>
- git add package.json
- git commit -m "updated version"

第二个问题的答案是:是的,它会触发另一个构建,因为默认情况下它们会在每次提交时触发。 在我的例子中,后续构建产生了完全相同的输出,这使得整个构建在 git commit 上失败。它是最新的来源,因此停止了重复触发。

每次更改都有两个构建,其中一个总是失败,这并不好。一个解决方案可能是 running builds by hand通过将 自定义 部分添加到配置中。

最终,由于缺乏自动化,我放弃了用管道推回某些东西的整个想法。

已更新

现在,也有可能schedule builds .有了这个特性,也可以避免重复触发。

关于node.js - 如何从 bitbucket-pipelines.yml 进行 git push?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840740/

相关文章:

javascript - 尝试/捕获不捕获快速异步功能中的所有错误?

Git:在恢复之前分支后 merge 更改

git - 如何删除本地 git 存储库中的远程分支?

tfs - CruiseControl,TeamCity和Team Foundation Server之间的比较

continuous-integration - 设置一个新的 CI 存储库需要多长时间?

continuous-integration - playframework 自动测试 Jenkins CI 等待完成?

javascript - 使用 Node.js,是否有一些语义可以告诉我代码何时要离开当前堆栈?

node.js - 从我已加入Node.js的 Telegram channel 获取更新

node.js - findOne() 的 Mongoose(express、node、mongo)范围问题

git - 清除 Github Desktop OSX 上的 stash 存储?