3535
3636jobs :
3737 update-version :
38- runs-on : ubuntu -latest
38+ runs-on : macos -latest
3939
4040 env :
4141 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -137,15 +137,22 @@ jobs:
137137 id : current_versions
138138 run : |
139139 # Extract current Android SDK version
140- ANDROID_VERSION=$(grep -oP ' com\.onesignal:OneSignal:\K [0-9.]+ ' plugin.xml | head -1)
140+ ANDROID_VERSION=$(sed -n 's/.* com\.onesignal:OneSignal:\( [0-9.]*\).*/\1/p ' plugin.xml | head -1)
141141
142142 # Extract current iOS SDK version
143- IOS_VERSION=$(grep -oP ' OneSignalXCFramework.*spec="\K [0-9.]+ ' plugin.xml | head -1)
143+ IOS_VERSION=$(sed -n 's/.* OneSignalXCFramework.*spec="\( [0-9.]*\)".*/\1/p ' plugin.xml | head -1)
144144
145145 echo "prev_android=$ANDROID_VERSION" >> $GITHUB_OUTPUT
146146 echo "prev_ios=$IOS_VERSION" >> $GITHUB_OUTPUT
147147
148148 # Cordova specific steps
149+ - name : Setup Capacitor
150+ run : |
151+ bun link
152+ cd example/IonicCapOneSignal
153+ bun install --frozen-lockfile
154+ bun run build
155+
149156 - name : Update Android SDK version
150157 if : inputs.android_version != ''
151158 run : |
@@ -155,10 +162,15 @@ jobs:
155162 RELEASE=$(curl -s -H "Authorization: token ${{ github.token }}" \
156163 "https://api.github.com/repos/OneSignal/OneSignal-Android-SDK/releases/tags/${VERSION}")
157164
158- if echo " $RELEASE" | grep -q "\"id\"" ; then
165+ if sed -n '/\"id\"/p' <<< " $RELEASE" | grep -q . ; then
159166 # Update plugin.xml with new version
160- sed -i "s|<framework src=\"com\.onesignal:OneSignal:[^\"]*\" />|<framework src=\"com.onesignal:OneSignal:${VERSION}\" />|" plugin.xml
167+ # mac os sed syntax
168+ sed -i '' 's|<framework src="com\.onesignal:OneSignal:[^"]*" />|<framework src="com.onesignal:OneSignal:'"$VERSION"'" />|' plugin.xml
161169 echo "✓ Updated plugin.xml with Android SDK ${VERSION}"
170+
171+ cd example/IonicCapOneSignal
172+ bunx cap sync android
173+ git add .
162174 else
163175 echo "✗ Android SDK version ${VERSION} not found"
164176 exit 1
@@ -173,27 +185,24 @@ jobs:
173185 RELEASE=$(curl -s -H "Authorization: token ${{ github.token }}" \
174186 "https://api.github.com/repos/OneSignal/OneSignal-iOS-SDK/releases/tags/${VERSION}")
175187
176- if echo " $RELEASE" | grep -q "\"id\"" ; then
188+ if sed -n '/\"id\"/p' <<< " $RELEASE" | grep -q . ; then
177189 # Update plugin.xml with new version
178- sed -i "s|<pod name=\"OneSignalXCFramework\" spec=\"[^\"]*\" />|<pod name=\"OneSignalXCFramework\" spec=\"${VERSION}\" />|" plugin.xml
190+ # mac os sed syntax
191+ sed -i '' "s|<pod name=\"OneSignalXCFramework\" spec=\"[^\"]*\" />|<pod name=\"OneSignalXCFramework\" spec=\"${VERSION}\" />|" plugin.xml
179192 echo "✓ Updated plugin.xml with iOS SDK ${VERSION}"
180193
181- # Need to clear the Podfile.lock to force a re-install of the framework
182- rm -f example/IonicCapOneSignal/ios/App/Podfile.lock
194+ # Need to regenerate the Podfile.lock
195+ cd example/IonicCapOneSignal/ios/App
196+ rm -f Podfile.lock
197+ cd ../..
198+ bunx cap sync ios
199+ git add .
200+
183201 else
184202 echo "✗ iOS SDK version ${VERSION} not found"
185203 exit 1
186204 fi
187205
188- - name : Capacitor update
189- run : |
190- bun link
191- cd example/IonicCapOneSignal
192- bun install --frozen-lockfile
193- bun run build
194- bunx cap sync || exit 1
195- git add .
196-
197206 - name : Update sdk version
198207 run : |
199208 NEW_VERSION="${{ inputs.cordova_version }}"
@@ -209,13 +218,13 @@ jobs:
209218 npm pkg set version="$NEW_VERSION"
210219
211220 # Update plugin.xml cordova plugin version (target <plugin> element specifically)
212- sed -i 's| <plugin \(xmlns="[^"]*" xmlns:android="[^"]*" id="[^"]*"\) version="[^"]*"|<plugin \1 version="'"$NEW_VERSION"'"| ' plugin.xml
221+ sed -i '' '/ <plugin/,/>s/ version="[^"]*"/ version="'"$NEW_VERSION"'"/ ' plugin.xml
213222
214223 # Update OneSignalPush.java wrapper version
215- sed -i "s/OneSignalWrapper\.setSdkVersion(\"[^\"]*\")/OneSignalWrapper.setSdkVersion(\"$WRAPPER_VERSION\")/g" src/android/com/onesignal/cordova/OneSignalPush.java
224+ sed -i '' "s/OneSignalWrapper\.setSdkVersion(\"[^\"]*\")/OneSignalWrapper.setSdkVersion(\"$WRAPPER_VERSION\")/g" src/android/com/onesignal/cordova/OneSignalPush.java
216225
217226 # Update OneSignalPush.m wrapper version
218- sed -i "s/OneSignalWrapper\.sdkVersion = @\"[^\"]*\"/OneSignalWrapper.sdkVersion = @\"$WRAPPER_VERSION\"/g" src/ios/OneSignalPush.m
227+ sed -i '' "s/OneSignalWrapper\.sdkVersion = @\"[^\"]*\"/OneSignalWrapper.sdkVersion = @\"$WRAPPER_VERSION\"/g" src/ios/OneSignalPush.m
219228
220229 git add package.json plugin.xml src/android/com/onesignal/cordova/OneSignalPush.java src/ios/OneSignalPush.m
221230
@@ -229,11 +238,11 @@ jobs:
229238 CURRENT_PLUGIN=$(cat plugin.xml)
230239
231240 # Extract current Android SDK version
232- ANDROID_VERSION=$(echo "$CURRENT_PLUGIN" | grep -oP ' com\.onesignal:OneSignal:\K [0-9.]+' | head -1)
241+ ANDROID_VERSION=$(sed -n 's/.* com\.onesignal:OneSignal:\( [0-9.]*\).*/\1/p' <<< "$CURRENT_PLUGIN" | head -1)
233242 PREVIOUS_ANDROID="${{ steps.current_versions.outputs.prev_android }}"
234243
235244 # Extract current iOS SDK version
236- IOS_VERSION=$(echo "$CURRENT_PLUGIN" | grep -oP ' OneSignalXCFramework.*spec="\K [0-9.]+' | head -1)
245+ IOS_VERSION=$(sed -n 's/.* OneSignalXCFramework.*spec="\( [0-9.]*\)".*/\1/p' <<< "$CURRENT_PLUGIN" | head -1)
237246 PREVIOUS_IOS="${{ steps.current_versions.outputs.prev_ios }}"
238247
239248 # Build output for native dependency changes
0 commit comments