lol
1# This action periodically merges base branches into staging branches.
2# This is done to
3# * prevent conflicts or rather resolve them early
4# * make all potential breakage happen on the staging branch
5# * and make sure that all major rebuilds happen before the staging
6# branch get’s merged back into its base branch.
7
8name: "Periodic Merges (24h)"
9
10
11on:
12 schedule:
13 # * is a special character in YAML so you have to quote this string
14 # Merge every 24 hours
15 - cron: '0 0 * * *'
16
17permissions:
18 contents: read
19
20jobs:
21 periodic-merge:
22 permissions:
23 contents: write # for devmasx/merge-branch to merge branches
24 pull-requests: write # for peter-evans/create-or-update-comment to create or update comment
25 if: github.repository_owner == 'NixOS'
26 runs-on: ubuntu-latest
27 strategy:
28 # don't fail fast, so that all pairs are tried
29 fail-fast: false
30 # certain branches need to be merged in order, like master->staging-next->staging
31 # and disabling parallelism ensures the order of the pairs below.
32 max-parallel: 1
33 matrix:
34 pairs:
35 - from: master
36 into: haskell-updates
37 - from: release-22.11
38 into: staging-next-22.11
39 - from: staging-next-22.11
40 into: staging-22.11
41 - from: release-22.05
42 into: staging-next-22.05
43 - from: staging-next-22.05
44 into: staging-22.05
45 name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
46 steps:
47 - uses: actions/checkout@v3
48
49 - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
50 uses: devmasx/merge-branch@1.4.0
51 with:
52 type: now
53 from_branch: ${{ matrix.pairs.from }}
54 target_branch: ${{ matrix.pairs.into }}
55 github_token: ${{ secrets.GITHUB_TOKEN }}
56
57 - name: Comment on failure
58 uses: peter-evans/create-or-update-comment@v2
59 if: ${{ failure() }}
60 with:
61 issue-number: 105153
62 body: |
63 Periodic merge from `${{ matrix.pairs.from }}` into `${{ matrix.pairs.into }}` has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).