about summary refs log tree commit diff
path: root/.github/workflows/periodic-merge-24h.yml
blob: d9ad593618aea88a92679ab6afb048257b7400fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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 (24h)"


on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    # Merge every 24 hours
    - cron:  '0 0 * * *'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  periodic-merge:
    permissions:
      contents: write  # for devmasx/merge-branch to merge branches
      pull-requests: write  # for peter-evans/create-or-update-comment to create or update comment
    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: haskell-updates
          - from: release-23.11
            into: staging-next-23.11
          - from: staging-next-23.11
            into: staging-23.11
    name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
    steps:
      - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4

      - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
        uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0
        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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
        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 }}).