Periodic Merges (haskell-updates) #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This action periodically merges a merge base of master and staging into haskell-updates. | |
# | |
# haskell-updates is based on master (so there are little unrelated failures and the cache | |
# is already prepopulated), but needs to target staging due to the high amount of rebuilds | |
# it typically causes. To prevent unrelated commits clattering the GitHub UI, we need to | |
# take care to only merge the merge-base of master and staging into haskell-updates. | |
# | |
# See also https://github.com/NixOS/nixpkgs/issues/361143. | |
name: "Periodic Merges (haskell-updates)" | |
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-24.04 | |
name: git merge-base master staging → haskell-updates | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
# Note: If we want to do something similar for more branches, we can move this into a | |
# separate job, so we can use the matrix strategy again. | |
- name: Find merge base of master and staging | |
id: find_merge_base_step | |
run: | | |
merge_base="$(git merge-base refs/remotes/origin/master refs/remotes/origin/staging)" | |
echo "Found merge base: $merge_base" >&2 | |
echo "merge_base=$merge_base" >> "$GITHUB_OUTPUT" | |
- name: git merge-base master staging → haskell-updates | |
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0 | |
with: | |
type: now | |
head_to_merge: ${{ steps.find_merge_base_step.outputs.merge_base }} | |
target_branch: haskell-updates | |
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: 367709 | |
body: | | |
Periodic merge from `${{ steps.find_merge_base_step.outputs.merge_base }}` into `haskell-updates` has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}). |