From 44395024726f188d8177212381abf4d263b67bcc Mon Sep 17 00:00:00 2001 From: Dan Ditomaso Date: Fri, 2 May 2025 09:23:43 -0400 Subject: [PATCH] feat: added github action workflow to release to stable --- .../workflows/update-stable-from-master.yml | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/update-stable-from-master.yml diff --git a/.github/workflows/update-stable-from-master.yml b/.github/workflows/update-stable-from-master.yml new file mode 100644 index 00000000..d369f4cb --- /dev/null +++ b/.github/workflows/update-stable-from-master.yml @@ -0,0 +1,54 @@ +name: Update Stable Branch from Master on Latest Release + +on: + release: + types: [published] + +# Only run if the published release is NOT a pre-release +if: github.event.release.prerelease == false + +# Define permissions required for the job +permissions: + contents: write # Needed to push to the stable branch + +jobs: + update-stable-branch: + name: Update Stable Branch from Master + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Configure Git + run: | + git config user.name "GitHub Actions Bot" + git config user.email "github-actions[bot]@users.noreply.github.com" + + - name: Fetch latest master and stable branches + run: | + git fetch origin master:master + git fetch origin stable:stable || echo "Stable branch not found remotely, will create." + + - name: Get latest master commit SHA + id: get_master_sha + run: echo "MASTER_SHA=$(git rev-parse master)" >> $GITHUB_ENV + + - name: Check out stable branch + run: | + if git show-ref --verify --quiet refs/heads/stable; then + git checkout stable + git pull origin stable # Sync with remote stable if it exists + else + echo "Creating local stable branch based on master HEAD." + git checkout -b stable ${{ env.MASTER_SHA }} + fi + + - name: Reset stable branch to latest master + run: git reset --hard ${{ env.MASTER_SHA }} + + - name: Force push stable branch + run: git push origin stable --force \ No newline at end of file