diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2021-06-27 13:10:34 +0200 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2021-06-30 22:42:16 +0200 |
commit | 3f40ca48bc556da618cd8eb8aa802f91135d4c4a (patch) | |
tree | 4f18279d9261db520c718c2e820c34ed0f508f0a /.github/workflows/periodic-merge-6h.yml | |
parent | 4ba70da807359ed01d662763a96c7b442762e5ef (diff) |
.github/workflows/periodic-merge: generalize from merge-staging
By generalizing the previous merge-staging action we can support a large number of branch pairs that need to be merged periodically. Provide two intervals, daily and every six hours, to accomodate different needs. Co-Authored-By: Malte Brandy <malte.brandy@maralorn.de>
Diffstat (limited to '.github/workflows/periodic-merge-6h.yml')
-rw-r--r-- | .github/workflows/periodic-merge-6h.yml | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/workflows/periodic-merge-6h.yml b/.github/workflows/periodic-merge-6h.yml new file mode 100644 index 0000000000000..bbf62cb5dbcc8 --- /dev/null +++ b/.github/workflows/periodic-merge-6h.yml @@ -0,0 +1,55 @@ +# This action periodically merges base branches into staging branches. +# This is done to +# * prevent conflicts or rather resolve them early +# * make all potential breakage happen on the staging branch +# * and make sure that all major rebuilds happen before the staging +# branch get’s merged back into its base branch. + +name: "Periodic Merges" + + +on: + schedule: + # * is a special character in YAML so you have to quote this string + # Merge every 6 hours + - cron: '0 */6 * * *' + +jobs: + periodic-merge: + if: github.repository_owner == 'NixOS' + runs-on: ubuntu-latest + strategy: + # don't fail fast, so that all pairs are tried + fail-fast: false + # certain branches need to be merged in order, like master->staging-next->staging + # and disabling parallelism ensures the order of the pairs below. + max-parallel: 1 + matrix: + pairs: + - from: master + into: staging-next + - from: staging-next + into: staging + - from: release-21.05 + into: staging-next-21.05 + - from: staging-next-21.05 + into: staging-21.05 + name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} + steps: + - uses: actions/checkout@v2 + + - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} + uses: devmasx/merge-branch@v1.3.1 + with: + type: now + from_branch: ${{ matrix.pairs.from }} + target_branch: ${{ matrix.pairs.into }} + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Comment on failure + uses: peter-evans/create-or-update-comment@v1 + if: ${{ failure() }} + with: + issue-number: 105153 + body: | + Periodic merge from `${{ matrix.pairs.from }}` into `${{ matrix.pairs.into }}` has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}). |