From df554a57727268d8e3781c64938ab9e8cb462e66 Mon Sep 17 00:00:00 2001 From: Nan Date: Wed, 15 Jul 2026 13:38:58 -0700 Subject: [PATCH 1/2] Treat CocoaPods Trunk duplicate pushes as a no-op. Allows re-running publish-release after a Trunk error that accepted the version server-side, so the workflow can continue with remaining steps. Co-authored-by: Cursor --- .github/workflows/publish-release.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 0409b278a..aded168fc 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -83,15 +83,19 @@ jobs: echo "Validating OneSignalXCFramework.podspec..." pod spec lint OneSignalXCFramework.podspec --allow-warnings - - name: Publish OneSignal.podspec to CocoaPods Trunk + - name: Publish podspecs to CocoaPods Trunk run: | - echo "Publishing OneSignal.podspec to CocoaPods Trunk..." - pod trunk push OneSignal.podspec --allow-warnings - - - name: Publish OneSignalXCFramework.podspec to CocoaPods Trunk - run: | - echo "Publishing OneSignalXCFramework.podspec to CocoaPods Trunk..." - pod trunk push OneSignalXCFramework.podspec --allow-warnings + push_podspec() { + local podspec="$1" + echo "Publishing $podspec to CocoaPods Trunk..." + OUTPUT=$(pod trunk push "$podspec" --allow-warnings 2>&1) && { echo "$OUTPUT"; return; } + echo "$OUTPUT" + echo "$OUTPUT" | grep -q "Unable to accept duplicate entry" || exit 1 + echo "⏭️ SKIPPED: $podspec already on Trunk (duplicate) — treating as no-op" + } + + push_podspec OneSignal.podspec + push_podspec OneSignalXCFramework.podspec - name: ✅ CocoaPods Published run: | From 72c04bdf32d260b13d32c6b86f91c2b3ef5b4799 Mon Sep 17 00:00:00 2001 From: Nan Date: Thu, 16 Jul 2026 08:54:16 -0700 Subject: [PATCH 2/2] Surface CocoaPods duplicate skips as workflow warnings. Makes skipped trunk pushes visible in the Actions annotations panel without opening step logs. Co-authored-by: Cursor --- .github/workflows/publish-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index aded168fc..8292c0b50 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -91,7 +91,7 @@ jobs: OUTPUT=$(pod trunk push "$podspec" --allow-warnings 2>&1) && { echo "$OUTPUT"; return; } echo "$OUTPUT" echo "$OUTPUT" | grep -q "Unable to accept duplicate entry" || exit 1 - echo "⏭️ SKIPPED: $podspec already on Trunk (duplicate) — treating as no-op" + echo "::warning::$podspec already on Trunk (duplicate) — skipped" } push_podspec OneSignal.podspec