From 24884e5aac7c095ec2c8a895f8825a3f675088ec Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Fri, 27 Nov 2020 15:48:27 +0100 Subject: [PATCH] GH Action: merge staging(-next) periodically Automate the merging of `master` -> `staging-next` -> `staging`. Our main development branch is `master`. Large rebuilds go to `staging`. Periodically, `staging` is merged into `staging-next` for stabilization. When considered sufficiently stable, `staging-next` is merged into `master`. As changes arrive on these branches, it is important that they're all updated regularly with eachothers changes. This commit automates that part. --- .github/CODEOWNERS | 1 + .github/workflows/merge-staging.yml | 30 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 .github/workflows/merge-staging.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 20668760d2d..9835b765461 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,6 +12,7 @@ # GitHub actions /.github/workflows @Mic92 @zowoq +/.github/workflows/merge-staging @FRidh # EditorConfig /.editorconfig @Mic92 @zowoq diff --git a/.github/workflows/merge-staging.yml b/.github/workflows/merge-staging.yml new file mode 100644 index 00000000000..a3dd1911370 --- /dev/null +++ b/.github/workflows/merge-staging.yml @@ -0,0 +1,30 @@ +name: "merge staging(-next)" + +on: + schedule: + # * is a special character in YAML so you have to quote this string + # Merge every 6 hours + - cron: '* */6 * * *' + +jobs: + sync-branch: + if: github.repository == 'NixOS/nixpkgs' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Merge master into staging-next + uses: devmasx/merge-branch@v1.3.1 + with: + type: now + from_branch: master + target_branch: staging-next + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Merge staging-next into staging + uses: devmasx/merge-branch@v1.3.1 + with: + type: now + from_branch: staging-next + target_branch: staging + github_token: ${{ secrets.GITHUB_TOKEN }}