Merge pull request #16 from ooni/fix/enum-validation #80
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 Android AAR | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - "v*" | |
| jobs: | |
| build-android: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Install Android NDK (manual) | |
| run: | | |
| sdkmanager "ndk;27.0.12077973" | |
| echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/27.0.12077973" >> $GITHUB_ENV | |
| - name: Install cargo-ndk | |
| run: | | |
| cargo install cargo-ndk --locked | |
| - name: Build for Android | |
| run: make android | |
| - name: Upload AAR Artifact | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ooniprobe-aar | |
| path: android/ooniprobe/build/outputs/aar/*.aar | |
| publish-android: | |
| runs-on: ubuntu-latest | |
| needs: build-android | |
| 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 AAR artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ooniprobe-aar | |
| path: maven/android | |
| - name: Set Project Version | |
| working-directory: maven/android | |
| 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/android | |
| run: | | |
| mvn clean deploy \ | |
| -Dandroid.aar.name=$(ls *.aar | xargs basename) \ | |
| --batch-mode \ | |
| -DskipTests | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
| MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
| MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |