From a644d30228d1d5a003e95f6875c433d3c4db38f6 Mon Sep 17 00:00:00 2001 From: Dan Ditomaso Date: Mon, 5 May 2025 13:20:49 -0400 Subject: [PATCH] Add github action to release to stable (#590) * feat: added github action workflow to release to stable * updated trigger logic --- .../workflows/update-stable-from-master.yml | 50 +++++++++++++++++++ 1 file changed, 50 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..c77f1c72 --- /dev/null +++ b/.github/workflows/update-stable-from-master.yml @@ -0,0 +1,50 @@ +name: Update Stable Branch from Master on Latest Release + +on: + release: + types: [released] + +permissions: + contents: write + +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