Promote Dev to Beta #28
This file contains hidden or 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
| name: Promote Dev to Beta | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: "Version to promote (format: 0.0.0)" | |
| required: true | |
| type: string | |
| jobs: | |
| promote-dev-to-beta: | |
| name: Promote Dev to Beta | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| with: | |
| token: ${{ secrets.PAT }} # Uses the Personal Access Token | |
| - name: Validate version format | |
| id: validate_version | |
| run: | | |
| VERSION="${{ github.event.inputs.version }}" | |
| if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "β ERROR: Version must be in 'v0.0.0' format." | |
| exit 1 | |
| fi | |
| echo "β Version format validated: $VERSION" | |
| - name: Check if dev branch exists | |
| id: check_dev_branch | |
| run: | | |
| VERSION="${{ github.event.inputs.version }}" | |
| DEV_BRANCH="dev/v$VERSION" | |
| if ! git ls-remote --exit-code origin "$DEV_BRANCH"; then | |
| echo "β ERROR: Dev branch '$DEV_BRANCH' does not exist!" | |
| exit 1 | |
| fi | |
| echo "β Dev branch '$DEV_BRANCH' exists." | |
| - name: Check if beta branch already exists | |
| id: check_beta_branch | |
| run: | | |
| VERSION="${{ github.event.inputs.version }}" | |
| BETA_BRANCH="beta/v$VERSION" | |
| if git ls-remote --exit-code origin "$BETA_BRANCH"; then | |
| echo "β ERROR: Beta branch '$BETA_BRANCH' already exists!" | |
| exit 1 | |
| fi | |
| echo "β Beta branch '$BETA_BRANCH' does not exist." | |
| - name: Create and push new beta branch | |
| run: | | |
| VERSION="${{ github.event.inputs.version }}" | |
| DEV_BRANCH="dev/v$VERSION" | |
| BETA_BRANCH="beta/v$VERSION" | |
| # Fetch latest changes | |
| git fetch origin "$DEV_BRANCH" | |
| # Create new beta branch from dev branch | |
| git checkout -b "$BETA_BRANCH" origin/"$DEV_BRANCH" | |
| # Push new beta branch to remote | |
| git push origin "$BETA_BRANCH" | |
| echo "β Successfully created beta branch '$BETA_BRANCH' from '$DEV_BRANCH'." | |
| - name: Merge dev into beta | |
| run: | | |
| VERSION="${{ github.event.inputs.version }}" | |
| DEV_BRANCH="dev/v$VERSION" | |
| BETA_BRANCH="beta/v$VERSION" | |
| # Checkout beta branch | |
| git checkout "$BETA_BRANCH" | |
| # Merge dev into beta | |
| git merge --no-ff "origin/$DEV_BRANCH" -m "Merge $DEV_BRANCH into $BETA_BRANCH" | |
| # Push merge changes | |
| git push origin "$BETA_BRANCH" | |
| echo "β Successfully merged '$DEV_BRANCH' into '$BETA_BRANCH'." | |
| # - name: Delete dev branch after successful merge | |
| # run: | | |
| # VERSION="${{ github.event.inputs.version }}" | |
| # DEV_BRANCH="dev/v$VERSION" | |
| # | |
| # # Delete dev branch locally and remotely | |
| # git branch -d "$DEV_BRANCH" | |
| # git push origin --delete "$DEV_BRANCH" | |
| # | |
| # echo "β Successfully deleted '$DEV_BRANCH'." |