Fix formatting #7456
Workflow file for this run
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 Build | |
| on: | |
| push: | |
| paths: | |
| - 'vcpkg/**' | |
| - 'vcpkg.json' | |
| - 'VCPKG_BASELINE' | |
| - 'app/**' | |
| - 'core/**' | |
| - 'scripts/**' | |
| - 'cmake/**' | |
| - 'cmake_templates/**' | |
| - 'CMakeLists.txt' | |
| - '.github/workflows/android.yml' | |
| release: | |
| types: | |
| - published | |
| concurrency: | |
| group: ci-${{github.ref}}-android | |
| cancel-in-progress: true | |
| jobs: | |
| android_build: | |
| if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - TRIPLET: 'arm-android' | |
| ANDROID_ABI: 'armeabi-v7a' | |
| BUILD_OFFSET: 10 | |
| - TRIPLET: 'arm64-android' | |
| ANDROID_ABI: 'arm64-v8a' | |
| BUILD_OFFSET: 50 | |
| runs-on: macos-15 | |
| env: | |
| NDK_VERSION: 'r27' # '27.2.12479018' | |
| NDK_VERSION_FULL: r27c | |
| JDK_VERSION: 17 | |
| SDK_PLATFORM: android-35 | |
| ANDROIDAPI: 24 | |
| VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' | |
| SDK_BUILD_TOOLS: 34.0.0 | |
| CMAKE_VERSION: '3.31.6' | |
| QT_ANDROID_KEYSTORE_ALIAS: input | |
| QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} | |
| QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} | |
| XC_VERSION: ${{ '16.2' }} | |
| VCPKG_ROOT: '${{ github.workspace }}/vcpkg' | |
| LC_ALL: 'en_US.UTF-8' #fastlane | |
| LANG: 'en_US.UTF-8' #fastlane | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: mm | |
| # | |
| # Free up space by removing unused XCode versions | |
| # | |
| # See https://github.com/actions/runner-images/issues/10511 | |
| # Removes all XCode versions, but the one we use | |
| # | |
| - name: Delete unused XC versions to reclaim disk space | |
| shell: bash | |
| run: | | |
| find /Applications/Xcode_* -maxdepth 0 -type d ! -name 'Xcode_${{ env.XC_VERSION }}.app' -exec rm -rf {} \; | |
| - name: Install Build Dependencies | |
| run: | | |
| brew uninstall cmake | |
| brew install gnupg | |
| brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl mono | |
| echo $(brew --prefix bison)/bin >> $GITHUB_PATH | |
| echo $(brew --prefix flex)/bin >> $GITHUB_PATH | |
| echo $(brew --prefix gettext)/bin >> $GITHUB_PATH | |
| if [[ ${{ github.ref }} == refs/tags/* ]] | |
| then | |
| export GIT_TAG="${GITHUB_REF//refs\/tags\//}" | |
| export GIT_BRANCH="" | |
| else | |
| export GIT_TAG="" | |
| export GIT_BRANCH="${GITHUB_REF//refs\/heads\//}" | |
| fi | |
| echo "GIT_TAG: $GIT_TAG" | |
| echo "GIT_BRANCH: $GIT_BRANCH" | |
| echo "GIT_TAG=$GIT_TAG" >> $GITHUB_ENV | |
| echo "GIT_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV | |
| - name: Install CMake and Ninja | |
| uses: lukka/get-cmake@latest | |
| with: | |
| cmakeVersion: ${{ env.CMAKE_VERSION }} | |
| - name: Setup XCode | |
| uses: maxim-lobanov/[email protected] | |
| with: | |
| xcode-version: ${{ env.XC_VERSION }} | |
| - name: Extract Mergin API_KEY | |
| env: | |
| MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} | |
| run: | | |
| cd mm/core/ | |
| $HOMEBREW_PREFIX/bin/openssl \ | |
| aes-256-cbc -d \ | |
| -in merginsecrets.cpp.enc \ | |
| -out merginsecrets.cpp \ | |
| -k "$MERGINSECRETS_DECRYPT_KEY" \ | |
| -md md5 | |
| - name: ccache | |
| uses: hendrikmuhs/[email protected] | |
| with: | |
| key: ccache-${{ env.TRIPLET }} | |
| max-size: 200M | |
| - uses: nttld/setup-ndk@v1 | |
| id: setup-ndk | |
| with: | |
| ndk-version: ${{ env.NDK_VERSION_FULL }} | |
| add-to-path: true | |
| - name: Set up JDK | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: ${{ env.JDK_VERSION }} | |
| distribution: zulu | |
| - name: Setup Android SDK | |
| uses: malinskiy/action-android/install-sdk@release/0.1.7 | |
| - name: Install Android Tools | |
| run: | | |
| sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools | |
| - name: Extract GPS keystore | |
| env: | |
| INPUTKEYSTORE_DECRYPT_KEY: ${{ secrets.INPUTKEYSTORE_DECRYPT_KEY }} | |
| run: | | |
| $HOMEBREW_PREFIX/bin/openssl \ | |
| aes-256-cbc -d \ | |
| -in mm/scripts/ci/android/Input_keystore.keystore.enc \ | |
| -out mm/Input_keystore.keystore \ | |
| -k $INPUTKEYSTORE_DECRYPT_KEY \ | |
| -md md5 | |
| PATH_TO_KEYSTORE=`pwd`/mm/Input_keystore.keystore | |
| echo "path to keystore $PATH_TO_KEYSTORE" | |
| echo "QT_ANDROID_KEYSTORE_PATH=$PATH_TO_KEYSTORE" >> $GITHUB_ENV | |
| - name: Install vcpkg | |
| shell: bash | |
| run: | | |
| mkdir -p "${{ env.VCPKG_ROOT }}" | |
| cd "${{ env.VCPKG_ROOT }}" | |
| git init | |
| git remote add origin https://github.com/microsoft/vcpkg.git | |
| git pull origin master | |
| VCPKG_TAG=`cat ${{ github.workspace }}/mm/VCPKG_BASELINE` | |
| git checkout ${VCPKG_TAG} | |
| cd "${{ env.VCPKG_ROOT }}" | |
| chmod +x ./bootstrap-vcpkg.sh | |
| ./bootstrap-vcpkg.sh | |
| - name: Setup NuGet Credentials | |
| shell: bash | |
| run: | | |
| mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ | |
| sources add \ | |
| -source "https://nuget.pkg.github.com/merginmaps/index.json" \ | |
| -storepasswordincleartext \ | |
| -name "GitHub" \ | |
| -username "mergin-maps-bot" \ | |
| -password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" | |
| mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ | |
| setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ | |
| -source "https://nuget.pkg.github.com/merginmaps/index.json" | |
| - name: Set up Ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| working-directory: mm/fastlane | |
| ruby-version: '3.3' | |
| bundler-cache: true | |
| - name: Decode Google Play JSON Key | |
| run: | | |
| $HOMEBREW_PREFIX/bin/openssl \ | |
| aes-256-cbc -d \ | |
| -in mm/scripts/ci/android/google_play_key.json.enc \ | |
| -out mm/google_play_key.json \ | |
| -k ${{ secrets.MM_GOOGLE_SERVICE_ACCOUNT_DECRYPTION_KEY }} \ | |
| -md md5 | |
| MM_GOOGLE_KEY_PATH=`pwd`/mm/google_play_key.json | |
| echo "path to keystore $MM_GOOGLE_KEY_PATH" | |
| echo "MM_GOOGLE_KEY_PATH=$MM_GOOGLE_KEY_PATH" >> $GITHUB_ENV | |
| - name: Calculate build number | |
| run: | | |
| BUILD_NUM=$GITHUB_RUN_NUMBER$((GITHUB_RUN_ATTEMPT + ${{ matrix.BUILD_OFFSET }})) | |
| echo "MM_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV | |
| echo "Version code: ${BUILD_NUM}" | |
| # add build number to summary | |
| echo ":rocket: Build number: ${BUILD_NUM}" >> $GITHUB_STEP_SUMMARY | |
| - name: Configure app | |
| env: | |
| ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} | |
| run: | | |
| mkdir -p ${{ github.workspace }}/build-mm | |
| cd ${{ github.workspace }}/build-mm | |
| export PATH=${{ env.VCPKG_ROOT }}:$PATH | |
| export ANDROID_ABI=${{ matrix.ANDROID_ABI }} | |
| cmake \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ | |
| -DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ | |
| -DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ | |
| -DVCPKG_HOST_TRIPLET=arm64-osx \ | |
| -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ | |
| -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ | |
| -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ | |
| -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ | |
| -DQT_ANDROID_SIGN_APK=Yes \ | |
| -DQT_ANDROID_SIGN_AAB=Yes \ | |
| -DUSE_MM_SERVER_API_KEY=Yes \ | |
| -DUSE_KEYCHAIN=No \ | |
| -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ | |
| -GNinja \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
| -S ../mm \ | |
| -B ./ | |
| - name: Build APK | |
| env: | |
| ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} | |
| run: | | |
| cd ${{ github.workspace }}/build-mm | |
| ninja apk | |
| echo "APKs:" | |
| find . | grep .apk | |
| - name: Rename APK artefacts | |
| run: | | |
| mv \ | |
| ${{ github.workspace }}/build-mm/app/android-build/build/outputs/apk/release/android-build-release-signed.apk \ | |
| ${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.apk | |
| - name: Upload APK to Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: ${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.apk | |
| name: Mergin Maps ${{ env.MM_VERSION_CODE }} APK [${{ matrix.ANDROID_ABI }}] | |
| - name: Deploy App to Google play - Internal app sharing | |
| if: ${{ !(github.ref_name == 'master' || github.ref_type == 'tag') }} | |
| run: | | |
| cd ${{ github.workspace }}/mm/fastlane | |
| FASTLANE_OUTPUT=$(bundle exec fastlane deploy_app_sharing apk_path:${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.apk) | |
| echo "$FASTLANE_OUTPUT" | |
| SHARE_URL=$(echo "$FASTLANE_OUTPUT" | awk '/APP_SHARE_URL:/ {print $NF}') | |
| echo "Google play store APK link: $SHARE_URL" >> $GITHUB_STEP_SUMMARY | |
| - name: Build AAB | |
| if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }} | |
| env: | |
| ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} | |
| run: | | |
| cd ${{ github.workspace }}/build-mm | |
| ninja aab | |
| echo "AAB:" | |
| find . | grep .aab | |
| - name: Rename AAB artefacts | |
| if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }} | |
| run: | | |
| mv \ | |
| ${{ github.workspace }}/build-mm/app/android-build/build/outputs/bundle/release/android-build-release.aab \ | |
| ${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.aab | |
| - name: Upload AAB to Artifacts | |
| if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: ${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.aab | |
| name: Mergin Maps ${{ env.MM_VERSION_CODE }} AAB [${{ matrix.ANDROID_ABI }}] | |
| - name: Deploy App to Google play - Internal app sharing | |
| if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }} | |
| run: | | |
| cd ${{ github.workspace }}/mm/fastlane | |
| FASTLANE_OUTPUT=$(bundle exec fastlane deploy_app_sharing aab_path:${{ github.workspace }}/merginmaps-${{ env.MM_VERSION_CODE }}-${{ matrix.ANDROID_ABI }}.aab) | |
| echo "$FASTLANE_OUTPUT" | |
| SHARE_URL=$(echo "$FASTLANE_OUTPUT" | awk '/APP_SHARE_URL:/ {print $NF}') | |
| echo "Google play store AAB link: $SHARE_URL" >> $GITHUB_STEP_SUMMARY |