Merge pull request #11 from ooni/feat/ooniprobe-ffi-kotlin #71
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build iOS XCFramework | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - "v*" | |
| jobs: | |
| build-ios: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Build XCFramework | |
| run: make ios | |
| - name: Upload XCFramework Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: passport.xcframework | |
| path: ios/ooniProbe.xcframework | |
| - name: Upload Swift Bindings | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ooniprobe-swift | |
| path: ios/Sources/OoniProbe/*.swift | |
| publish-ios: | |
| runs-on: ubuntu-latest | |
| needs: build-ios | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "17" | |
| distribution: "temurin" | |
| cache: "maven" | |
| server-id: central | |
| server-username: MAVEN_USERNAME | |
| server-password: MAVEN_PASSWORD | |
| gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
| gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} | |
| - name: Download XCFramework | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: passport.xcframework | |
| path: maven/ios/passport.xcframework | |
| - name: Zip XCFramework | |
| working-directory: maven/ios | |
| run: zip -r passport.xcframework.zip passport.xcframework | |
| - name: Set Project Version | |
| working-directory: maven/ios | |
| run: | | |
| if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then | |
| VERSION="${GITHUB_REF_NAME#v}" | |
| else | |
| SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) | |
| VERSION="${SHORT_SHA}" | |
| fi | |
| echo "Generated version: $VERSION" | |
| mvn versions:set \ | |
| -DnewVersion=${VERSION} \ | |
| -DremoveSnapshot=true | |
| env: | |
| MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| - name: Generate Podspec | |
| working-directory: maven/ios | |
| run: | | |
| VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) | |
| if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then | |
| RELEASE_VERSION="${VERSION}" | |
| else | |
| RELEASE_VERSION="0.1.0+${VERSION}" | |
| fi | |
| sed -e "s/@VERSION@/${VERSION}/g" -e "s/@RELEASE_VERSION@/${RELEASE_VERSION}/g" passport-template.podspec > passport.podspec | |
| echo "Generated podspec with version: $VERSION, release version: $RELEASE_VERSION" | |
| cat passport.podspec | |
| - name: Publish to Maven Central | |
| working-directory: maven/ios | |
| run: | | |
| mvn clean deploy \ | |
| -Dios.xcframework.name=$(ls *.zip | xargs basename) \ | |
| -Dios.podspec.file=${PWD}/passport.podspec \ | |
| --batch-mode \ | |
| -DskipTests | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
| MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
| MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |