Skip to content

Commit

Permalink
github: factor out platform rebase into own workflow
Browse files Browse the repository at this point in the history
Factor out the platform branch rebase job into its own workflow which is
triggered explicitly by a repository-dispatch event.

We can then re-trigger the rebase job after the proofs have succeeded on
the rebased branch to confirm that everything is now up to date and get
a successful rebase test run after everything has completed.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
  • Loading branch information
lsf37 committed Jul 26, 2024
1 parent 407bee8 commit d80c831
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 32 deletions.
38 changes: 6 additions & 32 deletions .github/workflows/proof-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,39 +152,13 @@ jobs:
env:
GH_SSH: ${{ secrets.CI_SSH }}

# Automatically rebase platform branches on pushes to master.
# This workflow here on the master branch attempts a git rebase of the platform
# branches listed in the build matrix below. If the rebase succeeds, the rebased
# branch is pushed under the name `<branch>-rebased`. This triggers the build
# workflow on the `<branch>-rebased` branch, which will run the proofs. If the
# proofs succeed, the `<branch>-rebased` branch is force-pushed over
# `<branch>`, becoming the new platform branch.
rebase:
name: Rebase platform branches
# Automatically rebase platform branches on pushes to master.
trigger-rebase:
name: Trigger platform branch rebase
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branch: [imx8-fpu-ver]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger rebase
uses: peter-evans/repository-dispatch@v3
with:
ref: ${{ matrix.branch }}
path: l4v-${{ matrix.branch }}
fetch-depth: 0
# needed to trigger push actions on the -rebased branch
# (implict GITHUB_TOKEN does not trigger further push actions).
token: ${{ secrets.PRIV_REPO_TOKEN }}
- name: Rebase
run: |
cd l4v-${{ matrix.branch }}
git config --global user.name "seL4 CI"
git config --global user.email "ci@sel4.systems"
git rebase origin/master
git status
- name: Push
run: |
cd l4v-${{ matrix.branch }}
git push -f origin HEAD:${{ matrix.branch }}-rebased
event-type: rebase
50 changes: 50 additions & 0 deletions .github/workflows/rebase.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Copyright 2024 Proofcraft Pty Ltd
#
# SPDX-License-Identifier: BSD-2-Clause

# On repository dispatch event rebase platform branches.

name: Rebase

on:
repository_dispatch:
types:
- rebase
# for testing:
workflow_dispatch:

# This workflow here on the master branch attempts a git rebase of the platform
# branches listed in the build matrix below. If the rebase succeeds, the rebased
# branch is pushed under the name `<branch>-rebased`. This triggers the build
# workflow on the `<branch>-rebased` branch, which will run the proofs. If the
# proofs succeed, the `<branch>-rebased` branch is force-pushed over
# `<branch>`, becoming the new platform branch.
jobs:
rebase:
name: Rebase platform branches
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branch: [imx8-fpu-ver]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
path: l4v-${{ matrix.branch }}
fetch-depth: 0
# needed to trigger push actions on the -rebased branch
# (implict GITHUB_TOKEN does not trigger further push actions).
token: ${{ secrets.PRIV_REPO_TOKEN }}
- name: Rebase
run: |
cd l4v-${{ matrix.branch }}
git config --global user.name "seL4 CI"
git config --global user.email "ci@sel4.systems"
git rebase origin/master
git status
- name: Push
run: |
cd l4v-${{ matrix.branch }}
git push -f origin HEAD:${{ matrix.branch }}-rebased

0 comments on commit d80c831

Please sign in to comment.