首页 > 解决方案 > Github post push hook

问题描述

Github 上是否有可能在分支 DEV 上有一个 post hook,自动将更改推送到 QA 和 STAGING?

为了遵守某些限制,我们需要 DEV、QA 和 STAGING 分支相同,因此当在 dev 上发生推送时,更改也会被推送到 QA 和 STAGING。

标签: gitgithub

解决方案


这可以使用 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

请注意,这假设您的devqastaging分支都是相同的。这是一种有点愚蠢的处理方式,你最好只为所有三个分支设置一个分支。

如果您的分支不相同,那么您需要执行合并,而不是 from devintoqadevinto staging,但请注意,除非您已检查分支在 CI 中是否可合并,否则它们可能不会合并,并且你需要优雅地处理这种情况。您想要使用的命令看起来更像这样,并且您需要更新actions/checkout操作以获取完整的历史记录:

$ git checkout qa
$ git merge origin/dev
$ git checkout staging
$ git merge origin/dev
$ git push origin qa staging

推荐阅读