Update engine SDK version in ImmutableDataTypes.h #34
This file contains 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: "Update engine SDK version in ImmutableDataTypes.h" | |
on: | |
workflow_dispatch: | |
inputs: | |
upgrade_type: | |
type: choice | |
description: Upgrade Type | |
options: | |
- patch | |
- minor | |
# - major | |
required: true | |
default: patch | |
mark_as_alpha: | |
type: boolean | |
description: Mark as alpha release | |
required: false | |
default: false | |
jobs: | |
update: | |
runs-on: ubuntu-latest | |
env: | |
GH_TOKEN: ${{ secrets.UNREAL_IMMUTABLE_SDK_GITHUB_TOKEN }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Check team membership | |
id: check_team | |
run: | | |
./.github/scripts/check_team_membership.sh "${{ github.actor }}" "${{ secrets.UNREAL_IMMUTABLE_SDK_GITHUB_TOKEN }}" | |
# shellcheck disable=SC1090 | |
source "$GITHUB_ENV" | |
echo "${{ github.actor }} is a member of the SDK team: $IS_MEMBER" | |
if [[ "$IS_MEMBER" != "true" ]]; then | |
echo "Not a member of the SDK team, skipping update" | |
exit 1 | |
fi | |
- name: Replace engine sdk version string | |
id: replace_engine_sdk_version | |
run: | | |
FILE=./Source/Immutable/Public/Immutable/ImmutableDataTypes.h | |
UPGRADE_TYPE=${{ github.event.inputs.upgrade_type }} | |
MARK_AS_ALPHA=${{ github.event.inputs.mark_as_alpha }} | |
RAW_VERSION=$(grep -oP '#define ENGINE_SDK_VERSION TEXT\("\K[0-9]+\.[0-9]+\.[0-9]+(\.[a-zA-Z]+)?' $FILE) | |
VERSION=$(echo "$RAW_VERSION" | grep -oP '^[0-9]+\.[0-9]+\.[0-9]+') | |
HAS_ALPHA=$(echo "$RAW_VERSION" | grep -q "\.alpha" && echo "true" || echo "false") | |
IFS='.' read -r major minor patch <<< "$VERSION" | |
if [[ "$HAS_ALPHA" == "true" ]]; then | |
if [ "$UPGRADE_TYPE" == "patch" ]; then | |
UPDATED_VERSION="$major.$minor.$patch" | |
elif [ "$UPGRADE_TYPE" == "minor" ]; then | |
minor=$((minor + 1)) | |
patch=0 | |
UPDATED_VERSION="$major.$minor.$patch" | |
fi | |
else | |
if [ "$UPGRADE_TYPE" == "patch" ]; then | |
patch=$((patch + 1)) | |
elif [ "$UPGRADE_TYPE" == "minor" ]; then | |
minor=$((minor + 1)) | |
patch=0 | |
fi | |
UPDATED_VERSION="$major.$minor.$patch" | |
fi | |
if [[ "$MARK_AS_ALPHA" == "true" && "$HAS_ALPHA" == "false" ]]; then | |
UPDATED_VERSION="$UPDATED_VERSION.alpha" | |
fi | |
sed -i -E "s/#define ENGINE_SDK_VERSION TEXT\(\"[0-9]+\.[0-9]+\.[0-9]+(\.[a-zA-Z]+)?\"\)/#define ENGINE_SDK_VERSION TEXT(\"$UPDATED_VERSION\")/g" $FILE | |
echo "Updated version: $UPDATED_VERSION" | |
echo "version=$UPDATED_VERSION" >> "$GITHUB_OUTPUT" | |
- uses: gr2m/create-or-update-pull-request-action@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
title: "chore: update version" | |
body: "Update version in ImmutableDataTypes.h" | |
branch: "chore/update-version-${{ steps.replace_engine_sdk_version.outputs.version }}" | |
commit-message: "chore: update version" | |
labels: release |