TL;博士:使用sot-release
插件和GitHub保护的分支的正确工作流程是什么?
我使用sot-release
插件是为了自动增加项目版本文件,并将其提交到main
分支。此外,我想将main
分支设置为受GitHub保护的分支。
为了做到这一点,我为CI流创建了一个GitHub令牌,并授予它推送权限。
流程如下:一旦PR被审查并合并到main
(受保护的分支),就会在GitHub Actions中执行更多的测试,最后一步是调用sbt
任务来创建发布。此任务使用sot-release
插件来推送存储库中版本文件的更改。
但是,CI流无法将更改推送到受保护的分支:
[info] remote: error: GH006: Protected branch update failed for refs/heads/master.
49
[info] remote: error: 3 of 3 required status checks are expected.
50
[info] To https://github.com/piplcom/dap-test
51
[info] ! [remote rejected] master -> master (protected branch hook declined)
什么是正确的工作流程?我在这里缺了什么?
如"如何解决GH006保护分支更新失败的问题";Paul Mowat的解决方案是使用一个带有令牌的专用帐户:
- 创建一个专门用于构建的新Github用户
- 为有权访问repo的用户创建一个新的个人访问令牌
- 将个人访问令牌添加为Github机密,例如BUILD_SVC_PAT
- 更新分支保护并将新生成用户添加到"限制可以推送到匹配分支的用户">
- 更新您的Github操作以使用Github机密检查代码
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checking out...
uses: actions/checkout@v2
with:
token: ${{ secrets.BUILD_SVC_PAT }}
OP matan已经做到了,但在评论中添加了:
这是我的错:我们使用了
sbt-github-actions
插件,在发布阶段也错过了GitHub令牌的设置
现在可以按预期工作了!