WIP Windows lite #84
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: Android Check | |
| on: | |
| workflow_dispatch: # Manual trigger | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| paths-ignore: | |
| - .gitignore | |
| - .github/** | |
| - '!.github/workflows/android-check.yaml' # Run check on self change | |
| - '**/*_tests/**' | |
| - CONTRIBUTORS | |
| - LICENSE | |
| - NOTICE | |
| - README.md | |
| - android/app/src/fdroid/** | |
| - android/app/src/google/** | |
| - iphone/** | |
| - data/strings/** | |
| - docs/** | |
| - generator/** | |
| - packaging/** | |
| - platform/*apple* | |
| - platform/*_ios* | |
| - platform/*_linux* | |
| - platform/*_mac* | |
| - platform/*qt* | |
| - platform/*_win* | |
| - pyhelpers/** | |
| - qt*/** | |
| - skin_generator/** | |
| - tools/** | |
| - track_generator/** | |
| - xcode/** | |
| env: | |
| JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin | |
| jobs: | |
| lint: | |
| name: Android Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout sources | |
| uses: actions/checkout@v4 | |
| - name: Lint | |
| shell: bash | |
| working-directory: android | |
| run: ./gradlew lintAllModules | |
| # Reviewdog is needed for the action below to report issues in the PR. | |
| - name: Install reviewdog | |
| uses: reviewdog/action-setup@v1 | |
| - name: Report Android Lint Results | |
| uses: ilyagulya/[email protected] | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| lint_xml_file: android/build/reports/lint/lint.xml | |
| reporter: github-pr-review | |
| level: warning | |
| - name: Upload Android Lint Report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-lint-report | |
| path: android/build/reports/lint/lint.xml | |
| android-check: | |
| name: Build Android Debug | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| flavor: [WebDebug, FdroidDebug] | |
| include: | |
| - flavor: WebDebug | |
| arch: arm64 | |
| run-tests: true | |
| - flavor: FdroidDebug | |
| arch: arm32 | |
| # Cancels previous jobs if the same branch or PR was updated again. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ matrix.flavor }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| steps: | |
| - name: Install build tools and dependencies | |
| shell: bash | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y ninja-build | |
| - name: Checkout sources | |
| uses: actions/checkout@v4 | |
| with: | |
| # Needed for versioning script | |
| fetch-depth: 200 # enough to get all commits for the current day | |
| - name: Restore Boost submodule from cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| 3party/boost | |
| .git/modules/3party/boost | |
| key: boost-submodule | |
| - name: Parallel submodules checkout | |
| shell: bash | |
| run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20)) | |
| - name: Configure repository | |
| shell: bash | |
| run: ./configure.sh | |
| - name: Configure ccache | |
| uses: hendrikmuhs/[email protected] | |
| with: | |
| key: ${{ github.workflow }}-${{ matrix.flavor }} | |
| - name: Compile ${{ matrix.flavor }} | |
| shell: bash | |
| working-directory: android | |
| env: | |
| CMAKE_C_COMPILER_LAUNCHER: ccache | |
| CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
| run: | | |
| cmake --version | |
| ninja --version | |
| ./gradlew -P${{ matrix.arch }} assemble${{ matrix.flavor }} | |
| - name: Enable KVM | |
| if: matrix.run-tests == true | |
| 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 tests | |
| if: matrix.run-tests == true | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 35 | |
| arch: x86_64 | |
| target: google_apis | |
| script: | | |
| cd android && ./gradlew -P${{ matrix.arch }} app:test${{ matrix.flavor }} sdk:testDebug sdk:connectedDebugAndroidTest | |
| - name: Upload ${{ matrix.flavor }} apk | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-${{ matrix.flavor }} | |
| path: android/app/build/outputs/apk/**/OrganicMaps-*.apk | |
| if-no-files-found: error |