diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 631cd59e..7117c6e2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,26 @@ on: push: branches: [main] jobs: + check-release: + runs-on: ubuntu-latest + outputs: + will-publish: ${{ steps.check.outputs.will-publish }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Check for pending changesets + id: check + run: | + CHANGESETS=$(find .changeset -name "*.md" -not -name "README.md" | wc -l | tr -d ' ') + if [ "$CHANGESETS" -eq 0 ]; then + echo "will-publish=true" >> $GITHUB_OUTPUT + else + echo "will-publish=false" >> $GITHUB_OUTPUT + fi + build-android: + needs: check-release + if: needs.check-release.outputs.will-publish == 'true' runs-on: ubuntu-latest steps: - name: Checkout @@ -26,6 +45,8 @@ jobs: path: packages/async-storage/android/local_repo build-apple: + needs: check-release + if: needs.check-release.outputs.will-publish == 'true' runs-on: macos-latest steps: - name: Checkout @@ -46,7 +67,8 @@ jobs: release: runs-on: ubuntu-latest - needs: [build-android, build-apple] + needs: [check-release, build-android, build-apple] + if: '!failure() && !cancelled()' steps: - name: Checkout uses: actions/checkout@v4 @@ -57,11 +79,13 @@ jobs: - name: Install dependencies run: yarn - name: Download Android artifacts + if: needs.check-release.outputs.will-publish == 'true' uses: actions/download-artifact@v4 with: name: android-artifacts path: packages/async-storage/android/local_repo - name: Download Apple artifacts + if: needs.check-release.outputs.will-publish == 'true' uses: actions/download-artifact@v4 with: name: apple-artifacts diff --git a/scripts/build-native-lib.sh b/scripts/build-native-lib.sh index 7fd6796d..e45d7f6b 100755 --- a/scripts/build-native-lib.sh +++ b/scripts/build-native-lib.sh @@ -11,7 +11,7 @@ ANDROID_OUTPUT_DIR="$MODULE_NAME/build" ANDROID_RN_OUTPUT_DIR="$RN_MODULE_DIR/android" ANDROID_PUBLISH_TASK="publishAndroidPublicationToLocalRepoRepository" -APPLE_BUILD_TASK="assembleSharedAsyncStorageXCFramework" +APPLE_BUILD_TASK="assembleSharedAsyncStorageReleaseXCFramework" APPLE_OUTPUT_NAME="SharedAsyncStorage.xcframework" APPLE_OUTPUT_DIR="$MODULE_NAME/build/XCFrameworks/release" APPLE_RN_OUTPUT_DIR="$RN_MODULE_DIR/apple-frameworks" @@ -57,10 +57,10 @@ build_apple() { # symlinks rm "$MAC_OS_FRAMEWORK/Headers" "$MAC_OS_FRAMEWORK/Modules" "$MAC_OS_FRAMEWORK/Resources" "$MAC_OS_FRAMEWORK/SharedAsyncStorage" - cp -r --copy-content "$MAC_OS_FRAMEWORK/Versions/A/Headers" -t "$MAC_OS_FRAMEWORK/" - cp -r --copy-content "$MAC_OS_FRAMEWORK/Versions/A/Modules" -t "$MAC_OS_FRAMEWORK/" - cp -r --copy-content "$MAC_OS_FRAMEWORK/Versions/A/Resources" -t "$MAC_OS_FRAMEWORK/" - cp --copy-content "$MAC_OS_FRAMEWORK/Versions/A/SharedAsyncStorage" -t "$MAC_OS_FRAMEWORK/" + cp -rL "$MAC_OS_FRAMEWORK/Versions/A/Headers" "$MAC_OS_FRAMEWORK/" + cp -rL "$MAC_OS_FRAMEWORK/Versions/A/Modules" "$MAC_OS_FRAMEWORK/" + cp -rL "$MAC_OS_FRAMEWORK/Versions/A/Resources" "$MAC_OS_FRAMEWORK/" + cp -L "$MAC_OS_FRAMEWORK/Versions/A/SharedAsyncStorage" "$MAC_OS_FRAMEWORK/" # clear versions, not needed rm -r "$MAC_OS_FRAMEWORK/Versions"