diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 4638c64..dc08239 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -28,7 +28,7 @@ jobs: - name: Build iOS & macOS xcframework run: | - ./build-pod.sh + ./tool/build_xcframework.sh - name: Lint pod run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a0a40d..c313ee1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,7 +73,7 @@ jobs: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }} - publish_ios_pod: + publish_ios_pod_and_spm_package: name: Publish iOS needs: [draft_release] runs-on: macos-latest @@ -100,18 +100,46 @@ jobs: - name: Build iOS & macOS xcframework run: | - ./build-pod.sh + .tool/build_xcframework.sh - name: Lint pod run: | pod lib lint + # For SPM package + - name: Set xcFramework file name used for SPM package + id: fileName + run: | + FILENAME=powersync-sqlite-core.xcframework.zip + echo "fileName=$FILENAME" >> $GITHUB_OUTPUT + - name: Upload xcframework env: GH_TOKEN: ${{ github.token }} GH_REPO: ${{ github.repository }} run: | - gh release upload "${{ needs.draft_release.outputs.tag }}" powersync-sqlite-core.xcframework.tar.xz + gh release upload "${{ needs.draft_release.outputs.tag }}" ${{ steps.fileName.outputs.fileName }} + + # For SPM package + - name: Generate and add checksum to output + id: checksum + run: | + CHECKSUM=$(swift package compute-checksum ${{ steps.fileName.outputs.fileName }}) + echo "checksum=$CHECKSUM" >> $GITHUB_OUTPUT + - name: Dispatch release to SPM package + uses: peter-evans/repository-dispatch@v3 + with: + token: ${{ secrets.SWIFT_PUBLISH_TOKEN }} + repository: powersync-ja/powersync-sqlite-core-swift + event-type: spm-release + client-payload: |- + { + "repository": "${{ github.repository }}", + "title": "${{ needs.draft_release.outputs.tag }}", + "tag": "${{ needs.draft_release.outputs.tag }}", + "checksum": "${{ steps.checksum.outputs.checksum }}" + "fileName": "${{ steps.fileName.outputs.fileName }}" + } publish_linux_x86_64: name: Publish Linux x86_64 diff --git a/.gitignore b/.gitignore index b519056..5fee65f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ target/ *.xcframework *.tar.gz *.tar.xz +*.zip diff --git a/RELEASING.md b/RELEASING.md index 7a181fa..e49eda3 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -6,7 +6,7 @@ Bump the version number in these places: 2. powersync-sqlite-core.podspec. 3. android/build.gradle.kts 4. android/src/prefab/prefab.json -5. build-pod.sh - CFBundleVersion and CFBundleShortVersionString. +5. tool/build_xcframework.sh - CFBundleVersion and CFBundleShortVersionString. 6. `cargo build` to update Cargo.lock Create a tag: diff --git a/powersync-sqlite-core.podspec b/powersync-sqlite-core.podspec index 99e6885..dcd85e3 100644 --- a/powersync-sqlite-core.podspec +++ b/powersync-sqlite-core.podspec @@ -10,7 +10,7 @@ PowerSync extension for SQLite. s.license = 'Apache License, Version 2.0' s.author = 'Journey Mobile, Inc.' - s.source = { :http => "https://github.com/powersync-ja/powersync-sqlite-core/releases/download/v#{s.version}/powersync-sqlite-core.xcframework.tar.xz" } + s.source = { :http => "https://github.com/powersync-ja/powersync-sqlite-core/releases/download/v#{s.version}/powersync-sqlite-core.xcframework.zip" } s.vendored_frameworks = 'powersync-sqlite-core.xcframework' diff --git a/build-pod.sh b/tool/build_xcframework.sh similarity index 97% rename from build-pod.sh rename to tool/build_xcframework.sh index e8f4730..01d895e 100755 --- a/build-pod.sh +++ b/tool/build_xcframework.sh @@ -63,7 +63,7 @@ EOF -output "${BUILD_DIR}/powersync-sqlite-core.xcframework" cp -Rf "${BUILD_DIR}/powersync-sqlite-core.xcframework" "powersync-sqlite-core.xcframework" - tar -cJvf powersync-sqlite-core.xcframework.tar.xz powersync-sqlite-core.xcframework LICENSE README.md + zip -r powersync-sqlite-core.xcframework.zip powersync-sqlite-core.xcframework LICENSE README.md rm -rf ${BUILD_DIR} }