我有一个 Node 项目。我想做的是在开发人员 checkin (提交和推送)时,我想运行 bitbucket 管道,它会在内部执行以下操作
- npm 安装和 npm 测试
- npm 版本补丁(增加 package.json 中的版本)
- git push origin master --follow-tags
- 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/