Skip to content

Commit b92fa85

Browse files
committed
ci: bump native version
1 parent def8368 commit b92fa85

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: Bump Native OneSignal SDKs
2+
3+
on:
4+
push:
5+
branches:
6+
- "ci-bump-native-vesrion"
7+
workflow_dispatch:
8+
inputs:
9+
android_version:
10+
description: "Target OneSignal-Android-SDK version (e.g., 5.1.31)"
11+
required: true
12+
type: string
13+
ios_version:
14+
description: "Target OneSignal-iOS-SDK version (e.g., 5.2.10)"
15+
required: true
16+
type: string
17+
18+
jobs:
19+
bump-native-sdks:
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@v4
25+
with:
26+
fetch-depth: 0
27+
28+
- name: Install gh CLI
29+
run: |
30+
sudo apt-get update -y
31+
sudo apt-get install -y gh jq
32+
33+
- name: Configure GitHub CLI
34+
env:
35+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
run: gh auth status || gh auth login --with-token <<< "${GH_TOKEN}"
37+
38+
- name: Detect current SDK versions
39+
id: current
40+
run: |
41+
# Example: extract versions from a constants file or C# source
42+
ANDROID_CURRENT=$(grep -Eo 'OneSignalAndroidSDKVersion = "[^"]+"' com.onesignal.unity.core/Runtime/OneSignalPlatform.cs | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')
43+
IOS_CURRENT=$(grep -Eo 'OneSignaliOSSDKVersion = "[^"]+"' com.onesignal.unity.core/Runtime/OneSignalPlatform.cs | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')
44+
45+
echo "android_current=${ANDROID_CURRENT}" >> $GITHUB_OUTPUT
46+
echo "ios_current=${IOS_CURRENT}" >> $GITHUB_OUTPUT
47+
48+
echo "Detected current Android SDK: ${ANDROID_CURRENT}"
49+
echo "Detected current iOS SDK: ${IOS_CURRENT}"
50+
51+
- name: Gather all release notes between versions
52+
id: notes
53+
env:
54+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55+
run: |
56+
ANDROID_OLD=${{ steps.current.outputs.android_current }}
57+
ANDROID_NEW=${{ inputs.android_version }}
58+
IOS_OLD=${{ steps.current.outputs.ios_current }}
59+
IOS_NEW=${{ inputs.ios_version }}
60+
61+
get_notes_between() {
62+
local repo=$1
63+
local from=$2
64+
local to=$3
65+
RELEASES=$(gh release list --repo "$repo" --limit 200 --json tagName --jq '.[] | .tagName' | sort -V)
66+
START=0
67+
NOTES=""
68+
for TAG in $RELEASES; do
69+
if [[ "$TAG" == "$from" ]]; then
70+
START=1
71+
continue
72+
fi
73+
if [[ "$START" -eq 1 ]]; then
74+
BODY=$(gh release view "$TAG" --repo "$repo" --json body,tagName --jq '". - ### " + .tagName + "\n" + .body')
75+
NOTES+="$BODY\n\n"
76+
fi
77+
if [[ "$TAG" == "$to" ]]; then
78+
break
79+
fi
80+
done
81+
echo -e "$NOTES"
82+
}
83+
84+
ANDROID_NOTES=$(get_notes_between "OneSignal/OneSignal-Android-SDK" "$ANDROID_OLD" "$ANDROID_NEW")
85+
IOS_NOTES=$(get_notes_between "OneSignal/OneSignal-iOS-SDK" "$IOS_OLD" "$IOS_NEW")
86+
87+
echo "android_notes<<EOF" >> $GITHUB_OUTPUT
88+
echo "$ANDROID_NOTES" >> $GITHUB_OUTPUT
89+
echo "EOF" >> $GITHUB_OUTPUT
90+
echo "ios_notes<<EOF" >> $GITHUB_OUTPUT
91+
echo "$IOS_NOTES" >> $GITHUB_OUTPUT
92+
echo "EOF" >> $GITHUB_OUTPUT
93+
94+
- name: Update native SDK versions in Unity dependencies
95+
run: |
96+
ANDROID_NEW=${{ inputs.android_version }}
97+
IOS_NEW=${{ inputs.ios_version }}
98+
99+
echo "🔧 Updating Android SDK to $ANDROID_NEW in XML and Gradle..."
100+
sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" OneSignalExample/Assets/OneSignal/Editor/OneSignalAndroidDependencies.xml
101+
sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" OneSignalExample/Assets/Plugins/Android/mainTemplate.gradle
102+
sed -i "s/OneSignal-Android-SDK:[0-9.]\+/OneSignal-Android-SDK:${ANDROID_NEW}/g" OneSignalExample/Assets/Plugins/Android/AndroidResolverDependencies.xml
103+
104+
echo "🔧 Updating iOS SDK to $IOS_NEW in XML..."
105+
sed -i "s/OneSignal-iOS-SDK:[0-9.]\+/OneSignal-iOS-SDK:${IOS_NEW}/g" OneSignalExample/Assets/OneSignal/Editor/OneSignaliOSDependencies.xml
106+
107+
- name: Insert formatted Android/iOS release notes under '## [Unreleased]'
108+
run: |
109+
ANDROID_OLD=${{ steps.current.outputs.android_current }}
110+
IOS_OLD=${{ steps.current.outputs.ios_current }}
111+
ANDROID_NEW=${{ inputs.android_version }}
112+
IOS_NEW=${{ inputs.ios_version }}
113+
ANDROID_NOTES="${{ steps.notes.outputs.android_notes }}"
114+
IOS_NOTES="${{ steps.notes.outputs.ios_notes }}"
115+
CHANGELOG="OneSignalExample/Assets/OneSignal/CHANGELOG.md"
116+
TMPFILE=$(mktemp)
117+
118+
INSERTION="\
119+
- Updated included Android SDK from ${ANDROID_OLD} to [${ANDROID_NEW}](https://github.com/OneSignal/OneSignal-Android-SDK/releases/tag/${ANDROID_NEW})\n${ANDROID_NOTES}\n\
120+
- Updated included iOS SDK from ${IOS_OLD} to [${IOS_NEW}](https://github.com/OneSignal/OneSignal-iOS-SDK/releases/tag/${IOS_NEW})\n${IOS_NOTES}\n\
121+
\nFor full changes, see the [native release notes](https://github.com/OneSignal/OneSignal-Android-SDK/releases) and [iOS native release notes](https://github.com/OneSignal/OneSignal-iOS-SDK/releases)\n"
122+
123+
awk -v insert="$INSERTION" '/## \[Unreleased\]/ && !done {print; print insert; done=1; next}1' "$CHANGELOG" > "$TMPFILE" && mv "$TMPFILE" "$CHANGELOG"
124+
125+
echo "✅ Added detailed changelog under ## [Unreleased]"
126+
127+
- name: Commit and create PR
128+
env:
129+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
130+
run: |
131+
git config user.name "github-actions[bot]"
132+
git config user.email "github-actions[bot]@users.noreply.github.com"
133+
134+
BRANCH="bump-native-${{ inputs.android_version }}-${{ inputs.ios_version }}"
135+
git checkout -b "$BRANCH"
136+
git add .
137+
git commit -m "Bump native OneSignal SDKs; OneSignal-Android-SDK ${{ inputs.android_version }}, OneSignal-iOS-SDK ${{ inputs.ios_version }}"
138+
git push origin "$BRANCH"
139+
140+
gh pr create \
141+
--title "Bump native OneSignal SDKs; OneSignal-Android-SDK ${{ inputs.android_version }}, OneSignal-iOS-SDK ${{ inputs.ios_version }}" \
142+
--body "### 🧩 Native SDK Updates
143+
- Android: ${{ inputs.android_version }}
144+
- iOS: ${{ inputs.ios_version }}
145+
146+
This PR updates Unity dependency files and inserts a detailed changelog entry under **[Unreleased]** in the Unity SDK changelog." \
147+
--base main \
148+
--label "native-sdk-bump"

0 commit comments

Comments
 (0)