mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-20 16:42:45 +02:00
* Create release actions * Add release branch to push/pull events that invoke test workflows
74 lines
3.3 KiB
YAML
74 lines
3.3 KiB
YAML
name: Create Release Branch
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
versionName:
|
|
description: "Name of version (i.e. 1.9.0)"
|
|
type: string
|
|
required: true
|
|
confirmVersion:
|
|
type: string
|
|
required: true
|
|
description: "Confirm version name"
|
|
|
|
# explicitly specify the necessary scopes
|
|
permissions:
|
|
pull-requests: write
|
|
actions: write
|
|
contents: write
|
|
|
|
jobs:
|
|
create-release:
|
|
if: github.repository == 'pagefaultgames/pokerogue' && (vars.BETA_DEPLOY_BRANCH == '' || ! startsWith(vars.BETA_DEPLOY_BRANCH, 'release'))
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed for github cli commands
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Validate provided version
|
|
# Ensure version matches confirmation and conforms to expected pattern.
|
|
run: |
|
|
if [[ "${{ github.event.inputs.versionName }}" != "${{ github.event.inputs.confirmVersion }}" ]]; then
|
|
echo "Version name does not match confirmation. Exiting."
|
|
exit 1
|
|
fi
|
|
if [[ ! "${{ github.event.inputs.versionName }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Version name must follow the format X.Y.Z where X, Y, and Z are all numbers. Exiting..."
|
|
exit 1
|
|
fi
|
|
shell: bash
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: "recursive"
|
|
# Always base off of beta branch, regardless of the branch the workflow was triggered from.
|
|
ref: beta
|
|
- name: Create release branch
|
|
run: git checkout -b release
|
|
# In order to be able to open a PR into beta, we need the branch to have at least one change.
|
|
- name: Overwrite RELEASE file
|
|
run: |
|
|
git config --local user.name "github-actions[bot]"
|
|
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
echo "Release v${{ github.event.inputs.versionName }}" > RELEASE
|
|
git add RELEASE
|
|
git commit -m "Stage release v${{ github.event.inputs.versionName }}"
|
|
- name: Push new branch
|
|
run: git push origin release
|
|
# The repository variable is used by the deploy-beta workflow to determine whether to deploy from beta or release.
|
|
- name: Set repository variable
|
|
run: GITHUB_TOKEN="${{ secrets.RW_VARS_PAT }}" gh variable set BETA_DEPLOY_BRANCH --body "release"
|
|
- name: Create pull request to main
|
|
run: |
|
|
gh pr create --base main \
|
|
--head release \
|
|
--title "Release v${{ github.event.inputs.versionName }} to main" \
|
|
--body "This PR is for the release of v${{ github.event.inputs.versionName }}, and was created automatically by the GitHub Actions workflow invoked by ${{ github.actor }}" \
|
|
--draft
|
|
- name: Create pull request to beta
|
|
run: |
|
|
gh pr create --base beta \
|
|
--head release \
|
|
--title "Release v${{ github.event.inputs.versionName }} to beta" \
|
|
--body "This PR is for the release of v${{ github.event.inputs.versionName }}, and was created automatically by the GitHub Actions workflow invoked by ${{ github.actor }}" \
|
|
--draft
|