11name : Create Unity Release PR
22
33on :
4+ push :
5+ branches :
6+ - " ci-unity"
47 workflow_dispatch :
58 inputs :
69 version :
1215 type : string
1316 required : false
1417 default : ' main'
18+
1519
1620permissions :
1721 contents : write
6670 fi
6771
6872 echo "Creating release branch $BRANCH from $BASE_BRANCH"
69- git checkout -b "$BRANCH" origin/$BASE_BRANCH
73+ git checkout -b "$BRANCH" origin/main
7074
7175 - name : Run composeRelease.sh
7276 run : |
@@ -76,15 +80,72 @@ jobs:
7680
7781 - name : Commit and Push version bump
7882 run : |
79- git config user.name "github-actions[bot]"
80- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
81-
82- if git diff --quiet; then
83- echo "No version changes detected."
84- else
85- git commit -am "chore(release): prepare Unity SDK v$VERSION"
86- git push origin "$BRANCH"
87- fi
83+ # 1. Update Version number in OneSignal.cs
84+ echo "✅ Updating OneSignal.cs"
85+ if [ -f "com.onesignal.unity.core/Runtime/OneSignal.cs" ]; then
86+ sed -i "s/public const string SdkVersion = \".*\"/public const string SdkVersion = \"$VERSION\"/" com.onesignal.unity.core/Runtime/OneSignal.cs
87+ fi
88+
89+ # 2. Update iOS version header in UIApplication+OneSignalUnity.mm
90+ echo "✅ Updating UIApplication+OneSignalUnity.mm"
91+ if [ -f "com.onesignal.unity.ios/Runtime/UIApplication+OneSignalUnity.mm" ]; then
92+ sed -i "s/NSString \*const ONESIGNAL_UNITY_VERSION = @\".*\"/NSString *const ONESIGNAL_UNITY_VERSION = @\"$VERSION\"/" com.onesignal.unity.ios/Runtime/UIApplication+OneSignalUnity.mm
93+ fi
94+
95+ # 3. Update platform version header in OneSignalPlatform.cs
96+ echo "✅ Updating OneSignalPlatform.cs"
97+ if [ -f "com.onesignal.unity.android/Runtime/OneSignalPlatform.cs" ]; then
98+ sed -i "s/private const string SdkVersion = \".*\"/private const string SdkVersion = \"$VERSION\"/" com.onesignal.unity.android/Runtime/OneSignalPlatform.cs
99+ fi
100+ fi
101+
102+ # 4. Update example app packages-lock.json
103+ echo "✅ Updating packages-lock.json"
104+ if [ -f "OneSignalExample/Packages/packages-lock.json" ]; then
105+ # Update com.onesignal.unity.android version
106+ jq --arg ver "$VERSION" \
107+ '(.dependencies."com.onesignal.unity.android".version = $ver)' \
108+ OneSignalExample/Packages/packages-lock.json > temp.json && \
109+ mv temp.json OneSignalExample/Packages/packages-lock.json
110+
111+ # Update com.onesignal.unity.ios version
112+ jq --arg ver "$VERSION" \
113+ '(.dependencies."com.onesignal.unity.ios".version = $ver)' \
114+ OneSignalExample/Packages/packages-lock.json > temp.json && \
115+ mv temp.json OneSignalExample/Packages/packages-lock.json
116+
117+ # Update com.onesignal.unity.core version
118+ jq --arg ver "$VERSION" \
119+ '(.dependencies."com.onesignal.unity.core".version = $ver)' \
120+ OneSignalExample/Packages/packages-lock.json > temp.json && \
121+ mv temp.json OneSignalExample/Packages/packages-lock.json
122+ fi
123+
124+ # 5. Update version number in .asmdef files
125+ echo "✅ Updating .asmdef files"
126+
127+ # List of asmdef files to update
128+ ASMDEF_FILES=(
129+ "com.onesignal.unity.core/Runtime/OneSignal.UnityPackage.Attribution.asmdef"
130+ "OneSignalExample/Assets/OneSignal.UnityPackage.Example.asmdef"
131+ "com.onesignal.unity.core/Editor/OneSignal.UnityPackage.Editor.asmdef"
132+ )
133+
134+ for asmdef in "${ASMDEF_FILES[@]}"; do
135+ if [ -f "$asmdef" ]; then
136+ echo " - Updating $asmdef"
137+ # Update versionDefines expression field
138+ jq --arg ver "$VERSION" \
139+ '(.versionDefines[]?.expression = $ver)' \
140+ "$asmdef" > temp.json && mv temp.json "$asmdef"
141+ else
142+ echo " ⚠️ File not found: $asmdef"
143+ fi
144+ done
145+
146+ echo ""
147+ echo "✅ Version update complete!"
148+ echo "Updated to version: $VERSION"
88149
89150 - name : Generate PR Body
90151 run : |
0 commit comments