| name: Android |
| |
| on: [push, pull_request] |
| |
| env: |
| CCACHE_BASEDIR: ${{ github.workspace }} |
| CCACHE_COMPRESS: true |
| CCACHE_MAXSIZE: 400M |
| CC: gcc |
| OS_NAME: linux |
| |
| jobs: |
| pre-check: |
| runs-on: ubuntu-latest |
| outputs: |
| should_skip: ${{ steps.skip-check.outputs.should_skip }} |
| steps: |
| - id: skip-check |
| uses: fkirc/skip-duplicate-actions@master |
| with: |
| concurrent_skipping: 'same_content' |
| |
| android: |
| needs: pre-check |
| if: ${{ needs.pre-check.outputs.should_skip != 'true' }} |
| runs-on: ubuntu-latest |
| env: |
| TEST: android |
| # since the NDK might be newly installed, we have to use this to avoid cache misses |
| CCACHE_COMPILERCHECK: content |
| steps: |
| - uses: actions/checkout@v4 |
| # make sure the NDK we reference is installed and exported so we can use it to build OpenSSL |
| - name: Install NDK |
| id: ndk-install |
| run: | |
| NDK_VERSION=$(grep "ndkVersion" src/frontends/android/app/build.gradle | sed -e 's/.*"\(.*\)"/\1/') |
| echo Using NDK ${NDK_VERSION} |
| yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;${NDK_VERSION}" |
| echo "ANDROID_NDK_ROOT=${ANDROID_HOME}/ndk/${NDK_VERSION}" >> "$GITHUB_OUTPUT" |
| - uses: actions/cache@v4 |
| with: |
| path: ~/.cache/ccache |
| key: ccache-android-${{ github.sha }} |
| restore-keys: | |
| ccache-android- |
| # necessary for newer versions of the Gradle plugin |
| - uses: actions/setup-java@v4 |
| with: |
| distribution: 'temurin' |
| java-version: 17 |
| cache: 'gradle' |
| - run: | |
| sudo apt-get install -qq ccache |
| echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV |
| ccache -z |
| - uses: ./.github/actions/default |
| env: |
| ANDROID_NDK_ROOT: ${{ steps.ndk-install.outputs.ANDROID_NDK_ROOT }} |
| - run: ccache -s |
| - uses: actions/upload-artifact@v4 |
| with: |
| name: Lint Results |
| path: src/frontends/android/app/build/reports/lint-results*.xml |