Skip to content

Commit bc9db01

Browse files
committed
ci: fix sed commands
1 parent 4743abe commit bc9db01

File tree

1 file changed

+32
-23
lines changed

1 file changed

+32
-23
lines changed

.github/workflows/create-release-pr.yml

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ on:
3535

3636
jobs:
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

Comments
 (0)