Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 73 additions & 63 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Build iOS XCFramework
on:
workflow_dispatch:
push:
branches: [ feat/ooniprobe-ffi-kotlin ]
branches: ["feat/**"]

jobs:
build-ios:
Expand Down Expand Up @@ -32,65 +32,75 @@ jobs:
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: Publish to Maven Central
working-directory: maven/ios
run: |
mvn clean deploy \
-Dios.xcframework.name=$(ls *.zip | xargs basename) \
--batch-mode \
-DskipTests
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
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)
RELEASE_VERSION="0.0.1+${VERSION}"
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 }}
13 changes: 13 additions & 0 deletions maven/ios/passport-template.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Pod::Spec.new do |s|
s.name = "passport"
s.version = "@RELEASE_VERSION@"
s.summary = "OONI Probe Passport Library for iOS"
s.author = "Mehul Gulati"
s.homepage = "https://github.com/ooni/ooniprobe-rs"
s.license = { :type => "https://opensource.org/licenses/BSD-3-Clause" }
s.source = {
:http => "https://repo1.maven.org/maven2/org/ooni/passport-ios/@VERSION@/passport-ios-@VERSION@.zip"
}
s.platform = :ios, "9.0"
s.ios.vendored_frameworks = "passport.xcframework"
end
5 changes: 5 additions & 0 deletions maven/ios/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<properties>
<ios.xcframework.name>ooniprobe-passport.xcframework.zip</ios.xcframework.name>
<project.artifact.file>${project.basedir}/${ios.xcframework.name}</project.artifact.file>
<ios.podspec.file>${project.basedir}/passport.podspec</ios.podspec.file>
</properties>

<build>
Expand Down Expand Up @@ -82,6 +83,10 @@
<file>${project.artifact.file}</file>
<type>zip</type>
</artifact>
<artifact>
<file>${ios.podspec.file}</file>
<type>podspec</type>
</artifact>
</artifacts>
</configuration>
</execution>
Expand Down
Loading