11name : Bump Native OneSignal SDKs
22
33on :
4- push :
5- branches :
6- - " ci-bump-native-version"
74 workflow_dispatch :
85 inputs :
96 android_version :
1512 required : true
1613 type : string
1714
15+ permissions :
16+ contents : write
17+ pull-requests : write
18+
1819jobs :
1920 bump-native-sdks :
2021 runs-on : ubuntu-latest
22+ env :
23+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
2124
2225 steps :
2326 - name : Checkout repository
@@ -31,25 +34,44 @@ jobs:
3134 sudo apt-get install -y gh jq
3235
3336 - name : Configure GitHub CLI
34- env :
35- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3637 run : gh auth status || gh auth login --with-token <<< "${GH_TOKEN}"
3738
3839 - name : Get current native SDK versions
3940 id : current
4041 run : |
41- ANDROID_CURRENT=$(grep -oP '(?<=OneSignal-Android-SDK:)[0-9]+\.[0-9]+\.[0-9]+' com.onesignal.unity.android/Editor/OneSignalAndroidDependencies.xml | head -1)
42- IOS_CURRENT=$(grep -oP '(?<=OneSignal-iOS-SDK:)[0-9]+\.[0-9]+\.[0-9]+' com.onesignal.unity.ios/Editor/OneSignaliOSDependencies.xml | head -1)
42+ set -e
43+ cd "${GITHUB_WORKSPACE}" || exit 1
44+
45+ ANDROID_FILE="com.onesignal.unity.android/Editor/OneSignalAndroidDependencies.xml"
46+ IOS_FILE="com.onesignal.unity.ios/Editor/OneSignaliOSDependencies.xml"
47+
48+ if [[ ! -f "$ANDROID_FILE" ]]; then
49+ echo "❌ Android dependency file not found!"
50+ find . -name "OneSignalAndroidDependencies.xml"
51+ exit 1
52+ fi
53+
54+ if [[ ! -f "$IOS_FILE" ]]; then
55+ echo "❌ iOS dependency file not found!"
56+ find . -name "OneSignaliOSDependencies.xml"
57+ exit 1
58+ fi
59+
60+ echo "✅ Found both dependency files."
61+ echo "→ Android: $ANDROID_FILE"
62+ echo "→ iOS: $IOS_FILE"
63+
64+ ANDROID_CURRENT=$(grep -oE 'com\.onesignal:OneSignal:[0-9]+\.[0-9]+\.[0-9]+' "$ANDROID_FILE" | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
65+ IOS_CURRENT=$(grep -oE 'OneSignalXCFramework\" version=\"[0-9]+\.[0-9]+\.[0-9]+' "$IOS_FILE" | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
66+
67+ echo "Detected current Android SDK: ${ANDROID_CURRENT:-<none>}"
68+ echo "Detected current iOS SDK: ${IOS_CURRENT:-<none>}"
4369
4470 echo "android_current=${ANDROID_CURRENT}" >> $GITHUB_OUTPUT
4571 echo "ios_current=${IOS_CURRENT}" >> $GITHUB_OUTPUT
46- echo "Detected current Android SDK: ${ANDROID_CURRENT}"
47- echo "Detected current iOS SDK: ${IOS_CURRENT}"
4872
4973 - name : Gather all release notes between versions
5074 id : notes
51- env :
52- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5375 run : |
5476 ANDROID_OLD=${{ steps.current.outputs.android_current }}
5577 ANDROID_NEW=${{ inputs.android_version }}
@@ -95,14 +117,27 @@ jobs:
95117 IOS_NEW=${{ inputs.ios_version }}
96118
97119 echo "🔧 Updating Android SDK to $ANDROID_NEW in XML and Gradle..."
98- sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" \
99- com.onesignal.unity.android/Editor/OneSignalAndroidDependencies.xml
100- sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" OneSignalExample/Assets/Plugins/Android/mainTemplate.gradle
101- sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" OneSignalExample/Assets/Plugins/Android/AndroidResolverDependencies.xml
102-
103- echo "🔧 Updating iOS SDK to $IOS_NEW in XML..."
104- sed -i "s/OneSignal-iOS-SDK:[0-9.]\+/OneSignal-iOS-SDK:${IOS_NEW}/g" \
105- com.onesignal.unity.ios/Editor/OneSignaliOSDependencies.xml
120+ for FILE in \
121+ com.onesignal.unity.android/Editor/OneSignalAndroidDependencies.xml \
122+ com.onesignal.unity.android/Editor/mainTemplate.gradle \
123+ com.onesignal.unity.android/Editor/AndroidResolverDependencies.xml
124+ do
125+ if [[ -f "$FILE" ]]; then
126+ sed -i "s#com\.onesignal:OneSignal:[0-9.]\+#com.onesignal:OneSignal:${ANDROID_NEW}#g" "$FILE"
127+ echo "✅ Updated $FILE"
128+ else
129+ echo "⚠️ Skipping missing file: $FILE"
130+ fi
131+ done
132+
133+ echo "🔧 Updating iOS SDK to $IOS_NEW..."
134+ IOS_FILE="com.onesignal.unity.ios/Editor/OneSignaliOSDependencies.xml"
135+ if [[ -f "$IOS_FILE" ]]; then
136+ sed -i "s/OneSignalXCFramework\" version=\"[0-9.]\+/OneSignalXCFramework\" version=\"${IOS_NEW}/g" "$IOS_FILE"
137+ echo "✅ Updated $IOS_FILE"
138+ else
139+ echo "⚠️ Skipping missing file: $IOS_FILE"
140+ fi
106141
107142 - name : Insert formatted Android/iOS release notes under '## [Unreleased]'
108143 run : |
@@ -125,8 +160,6 @@ jobs:
125160 echo "✅ Added detailed changelog under ## [Unreleased]"
126161
127162 - name : Commit and create PR
128- env :
129- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
130163 run : |
131164 git config user.name "github-actions[bot]"
132165 git config user.email "github-actions[bot]@users.noreply.github.com"
@@ -140,8 +173,8 @@ jobs:
140173 gh pr create \
141174 --title "Bump native OneSignal SDKs; OneSignal-Android-SDK ${{ inputs.android_version }}, OneSignal-iOS-SDK ${{ inputs.ios_version }}" \
142175 --body "### 🧩 Native SDK Updates
143- - Android: ${{ inputs.android_version }}
144- - iOS: ${{ inputs.ios_version }}
176+ - Android: ${{ inputs.android_version }}
177+ - iOS: ${{ inputs.ios_version }}
145178
146179 This PR updates Unity dependency files and inserts a detailed changelog entry under **[Unreleased]** in the Unity SDK changelog." \
147180 --base main \
0 commit comments