name: android-ci-pull on: workflow_dispatch: pull_request: branches: - main paths: - 'platform/android/**' - ".github/workflows/android-ci.yml" - "bin/**" - "expression-test/**" - "include/**" - "metrics/**" - "platform/default/**" - "render-test/**" - "scripts/**" - "src/**" - "test/**" - "vendor/**" - maplibre-gl-js - ".gitmodules" - "!**/*.md" concurrency: # cancel jobs on PRs only group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: build: runs-on: ubuntu-22.04 defaults: run: working-directory: platform/android env: JOBS: 8 BUILDTYPE: Debug IS_LOCAL_DEVELOPMENT: false MBGL_ANDROID_STL: c++_static steps: - uses: actions/checkout@v3 with: submodules: recursive fetch-depth: 0 - name: Cache node modules uses: actions/cache@v3 env: cache-name: cache-node-modules with: path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: npm install run: npm install --ignore-scripts working-directory: platform/android - name: Install ccache run: sudo apt-get install -y ccache - name: Prepare ccache run: ccache --clear - name: Cache ccache uses: actions/cache@v3 env: cache-name: ccache-v1 with: path: ~/.ccache' key: ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }}-${{ github.sha }}-${{ github.head_ref }} restore-keys: | ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }}-${{ github.sha }} ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }} ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }} - name: Clear ccache statistics run: | ccache --zero-stats ccache --max-size=2G ccache --show-stats - name: restore-gradle-cache uses: actions/cache@v3 env: cache-name: gradle-v1 with: path: ~/.gradle' key: ${{ env.cache-name }}-{{ hashFiles 'gradle/dependencies.gradle' }}-{{ hashFiles 'build.gradle' }}-{{ hashFiles 'gradle/wrapper/gradle-wrapper.properties' }}' restore-keys: | - ${{ env.cache-name }} - name: Check code style run: make android-check - name: Run Android unit tests run: make run-android-unit-test - name: Get latest CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: 3.10.2 ninjaVersion: latest - name: Build libmapbox-gl.so for arm-v8 run: | cmake --version make android-lib-arm-v8 - name: Store debug artifacts uses: actions/upload-artifact@v3 with: name: debug-artifacts path: | MapboxGLAndroidSDKTestApp/build/outputs/apk/debug MapboxGLAndroidSDK/build/reports/lint-results.html MapboxGLAndroidSDK/lint-baseline.xml MapboxGLAndroidSDKTestApp/build/reports/lint-results.html MapboxGLAndroidSDKTestApp/build/reports/lint-results.xml MapboxGLAndroidSDKTestApp/lint-baseline.xml MapboxGLAndroidSDK/build/intermediates/cmake/debug/obj