Add manual push completion handler support for iOS #956
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: Test Android build scripts | |
| 'on': | |
| pull_request: | |
| paths: | |
| - '.github/workflows/scripts-android.yml' | |
| - 'scripts/setup-workspace.sh' | |
| - 'scripts/build-android-port.sh' | |
| - 'scripts/build-android-app.sh' | |
| - 'scripts/run-android-instrumentation-tests.sh' | |
| - 'scripts/generate-android-coverage-report.sh' | |
| - 'scripts/android/lib/**/*.java' | |
| - 'scripts/android/tests/**/*.java' | |
| - 'scripts/device-runner-app/**/*.java' | |
| - 'scripts/hellocodenameone/**' | |
| - 'scripts/android/screenshots/**' | |
| - '!scripts/android/screenshots/**/*.md' | |
| - 'scripts/templates/**' | |
| - '!scripts/templates/**/*.md' | |
| - 'CodenameOne/src/**' | |
| - '!CodenameOne/src/**/*.md' | |
| - 'Ports/Android/**' | |
| - '!Ports/Android/**/*.md' | |
| - 'maven/**' | |
| - '!maven/core-unittests/**' | |
| - 'tests/**' | |
| - '!tests/**/*.md' | |
| - '!docs/**' | |
| push: | |
| branches: | |
| - master | |
| paths: | |
| - '.github/workflows/scripts-android.yml' | |
| - 'scripts/setup-workspace.sh' | |
| - 'scripts/build-android-port.sh' | |
| - 'scripts/build-android-app.sh' | |
| - 'scripts/run-android-instrumentation-tests.sh' | |
| - 'scripts/generate-android-coverage-report.sh' | |
| - 'scripts/android/lib/**/*.java' | |
| - 'scripts/android/tests/**/*.java' | |
| - 'scripts/device-runner-app/**/*.java' | |
| - 'scripts/hellocodenameone/**' | |
| - 'scripts/android/screenshots/**' | |
| - '!scripts/android/screenshots/**/*.md' | |
| - 'scripts/templates/**' | |
| - '!scripts/templates/**/*.md' | |
| - 'CodenameOne/src/**' | |
| - '!CodenameOne/src/**/*.md' | |
| - 'Ports/Android/**' | |
| - '!Ports/Android/**/*.md' | |
| - 'maven/**' | |
| - '!maven/core-unittests/**' | |
| - 'tests/**' | |
| - '!tests/**/*.md' | |
| - '!docs/**' | |
| # The token in secrets.CN1SS_GH_TOKEN was generated on | |
| # Oct 16th 2025. If in Oct 2026 builds start failing, it | |
| # means the token needs to be regenerated: | |
| # 1. Go to https://github.com/settings/tokens → “Developer settings” → “Personal access tokens”. | |
| # 2. Choose Fine-grained token (recommended). | |
| # 3. Grant: | |
| # • Repository access → select Codename One | |
| # • Permissions: | |
| # • Contents → Read and Write | |
| # • Pull requests → Read and Write | |
| # • Issues → Read and Write | |
| # 4. Copy the generated token | |
| # 5. Go to https://github.com/codenameone/CodenameOne/settings/secrets/actions | |
| # and edit the CN1SS_GH_TOKEN to use the new token | |
| jobs: | |
| build-android: | |
| name: Build Android ${{ matrix.name }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: "Default: 8" | |
| id: default | |
| - name: "JDK 17" | |
| id: jdk17 | |
| java_version: '17' | |
| - name: "JDK 21" | |
| id: jdk21 | |
| java_version: '21' | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| issues: write | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }} | |
| GH_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Free Disk Space | |
| if: matrix.id != 'default' | |
| run: | | |
| sudo rm -rf /usr/share/dotnet | |
| sudo rm -rf /usr/local/lib/android/sdk/ndk | |
| sudo rm -rf /opt/ghc | |
| sudo rm -rf /usr/share/swift | |
| - name: Setup JDK | |
| if: matrix.id != 'default' | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ matrix.java_version }} | |
| distribution: 'zulu' | |
| - name: Set JDK_HOME | |
| if: matrix.id != 'default' | |
| run: echo "JDK_HOME=${JAVA_HOME}" >> $GITHUB_ENV | |
| - name: Configure CN1SS options | |
| if: matrix.id != 'default' | |
| run: | | |
| echo "CN1SS_SKIP_COMMENT=1" >> $GITHUB_ENV | |
| echo "CN1SS_FAIL_ON_MISMATCH=1" >> $GITHUB_ENV | |
| echo "CN1SS_SKIP_COVERAGE=1" >> $GITHUB_ENV | |
| - name: Setup workspace | |
| run: ./scripts/setup-workspace.sh -q -DskipTests | |
| - name: Build Android port | |
| run: ./scripts/build-android-port.sh -q -DskipTests | |
| - name: Build Hello Codename One Android app | |
| id: build-android-app | |
| run: ./scripts/build-android-app.sh -q -DskipTests | |
| - name: Enable KVM for Android emulator | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Run Android instrumentation tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 31 | |
| arch: x86_64 | |
| target: google_apis | |
| script: ./scripts/run-android-instrumentation-tests.sh "${{ steps.build-android-app.outputs.gradle_project_dir }}" | |
| - name: Upload emulator screenshot | |
| if: always() && matrix.id == 'default' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: emulator-screenshot | |
| path: artifacts/*.png | |
| if-no-files-found: warn | |
| retention-days: 14 | |
| compression-level: 6 | |
| - name: Upload Android Jacoco coverage report | |
| if: always() && matrix.id == 'default' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-jacoco-coverage | |
| path: artifacts/android-coverage-report | |
| if-no-files-found: warn | |
| retention-days: 14 | |
| compression-level: 6 |