git - Github post push hook
问题描述
Github 上是否有可能在分支 DEV 上有一个 post hook,自动将更改推送到 QA 和 STAGING?
为了遵守某些限制,我们需要 DEV、QA 和 STAGING 分支相同,因此当在 dev 上发生推送时,更改也会被推送到 QA 和 STAGING。
解决方案
这可以使用 GitHub Actions 来实现。你会像这样设置一个动作:
name: ci
on:
push:
branches:
- dev
jobs:
push:
name: Update QA and Staging Branches
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: git push origin dev:qa dev:staging
请注意,这假设您的dev
、qa
和staging
分支都是相同的。这是一种有点愚蠢的处理方式,你最好只为所有三个分支设置一个分支。
如果您的分支不相同,那么您需要执行合并,而不是 from dev
intoqa
和dev
into staging
,但请注意,除非您已检查分支在 CI 中是否可合并,否则它们可能不会合并,并且你需要优雅地处理这种情况。您想要使用的命令看起来更像这样,并且您需要更新actions/checkout
操作以获取完整的历史记录:
$ git checkout qa
$ git merge origin/dev
$ git checkout staging
$ git merge origin/dev
$ git push origin qa staging