Removed unneeded line #8417
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: iOS Build | |
| on: | |
| push: | |
| paths: | |
| - 'vcpkg/**' | |
| - 'vcpkg.json' | |
| - 'VCPKG_BASELINE' | |
| - 'app/**' | |
| - 'core/**' | |
| - 'scripts/**' | |
| - 'cmake/**' | |
| - 'cmake_templates/**' | |
| - 'CMakeLists.txt' | |
| - '.github/workflows/ios.yml' | |
| - '.github/secrets/ios/**' | |
| release: | |
| types: | |
| - published | |
| env: | |
| CMAKE_VERSION: '3.31.6' | |
| VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' | |
| VCPKG_ROOT: '${{ github.workspace }}/vcpkg' | |
| XC_VERSION: ${{ '16.4' }} | |
| DEPLOYMENT_TARGET: '14.0' | |
| TRIPLET: arm64-ios | |
| IOS_PROVISIONING_PROFILE_UUID: 59aaa8d7-516a-4592-8c58-d7d1c1f81610 | |
| KEYCHAIN: ${{ 'inputapp.keychain' }} | |
| concurrency: | |
| group: ci-${{github.ref}}-ios | |
| cancel-in-progress: true | |
| jobs: | |
| ios_build: | |
| if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) | |
| runs-on: macos-15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| path: mm | |
| - name: Install brew deps | |
| run: | | |
| brew uninstall cmake | |
| brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg mono | |
| brew install gnupg | |
| echo $(brew --prefix bison)/bin >> $GITHUB_PATH | |
| echo $(brew --prefix flex)/bin >> $GITHUB_PATH | |
| echo $(brew --prefix gettext)/bin >> $GITHUB_PATH | |
| - name: Install CMake and Ninja | |
| uses: lukka/get-cmake@latest | |
| with: | |
| cmakeVersion: ${{ env.CMAKE_VERSION }} | |
| - name: Setup XCode | |
| uses: maxim-lobanov/setup-xcode@v1.6.0 | |
| with: | |
| xcode-version: ${{ env.XC_VERSION }} | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| with: | |
| key: ccache-${{ env.TRIPLET }} | |
| max-size: 200M | |
| - 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: 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: Configure Keychain | |
| run: | | |
| security create-keychain -p "" "$KEYCHAIN" | |
| security list-keychains -s "$KEYCHAIN" | |
| security default-keychain -s "$KEYCHAIN" | |
| security unlock-keychain -p "" "$KEYCHAIN" | |
| security set-keychain-settings | |
| security list-keychains | |
| - name: Configure Code Signing | |
| env: | |
| IOS_GPG_KEY: ${{ secrets.IOS_GPG_KEY }} | |
| IOS_CERT_KEY: ${{ secrets.IOS_CERT_KEY }} | |
| run: | | |
| gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./mm/.github/secrets/ios/Certificates_ios_dist.p12 ./mm/.github/secrets/ios/Certificates_ios_dist.p12.gpg | |
| security import "./mm/.github/secrets/ios/Certificates_ios_dist.p12" -k "$KEYCHAIN" -P "$IOS_CERT_KEY" -A | |
| security set-key-partition-list -S apple-tool:,apple: -s -k "" "$KEYCHAIN" | |
| mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles | |
| gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision.gpg | |
| cp ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/${IOS_PROVISIONING_PROFILE_UUID}.mobileprovision | |
| - name: Calculate a build number | |
| env: | |
| OFFFSET: 10 # offset for build number - due to previous builds ~ new builds must always have a higher number | |
| run: | | |
| BUILD_NUM=$GITHUB_RUN_NUMBER$((GITHUB_RUN_ATTEMPT + OFFFSET)) | |
| TIMESTAMP=`date "+%y.%-m"` | |
| CF_BUNDLE_VERSION=${TIMESTAMP}.${BUILD_NUM} | |
| echo "MM_VERSION_CODE=${CF_BUNDLE_VERSION}" >> $GITHUB_ENV | |
| echo "Build number: ${CF_BUNDLE_VERSION}" | |
| # add build number to summary | |
| echo ":rocket: Build number: ${CF_BUNDLE_VERSION}" >> $GITHUB_STEP_SUMMARY | |
| - name: Create build system with cmake | |
| run: | | |
| mkdir -p install-mm | |
| mkdir -p build-mm | |
| cd build-mm | |
| # run cmake | |
| cmake \ | |
| -DIOS_USE_PRODUCTION_SIGNING=TRUE \ | |
| -DVCPKG_HOST_TRIPLET=arm64-osx \ | |
| -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ | |
| -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ | |
| -D ENABLE_BITCODE=OFF \ | |
| -D ENABLE_ARC=ON \ | |
| -D CMAKE_CXX_VISIBILITY_PRESET=hidden \ | |
| -D CMAKE_SYSTEM_NAME=iOS \ | |
| -D CMAKE_SYSTEM_PROCESSOR=aarch64 \ | |
| -D CMAKE_OSX_DEPLOYMENT_TARGET=${{ env.DEPLOYMENT_TARGET }} \ | |
| -DIOS=TRUE \ | |
| -DUSE_MM_SERVER_API_KEY=TRUE \ | |
| -DUSE_KEYCHAIN=No \ | |
| -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ | |
| -G "Xcode" \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
| -S ${{ github.workspace }}/mm \ | |
| -B ./ | |
| - name: Build app (release) | |
| run: | | |
| cd build-mm | |
| xcodebuild \ | |
| -project MerginMaps.xcodeproj/ \ | |
| -scheme MerginMaps \ | |
| -sdk iphoneos \ | |
| -configuration Release \ | |
| archive -archivePath MerginMaps.xcarchive \ | |
| "OTHER_CODE_SIGN_FLAGS=--keychain '$KEYCHAIN'" | |
| - name: Create package | |
| run: | | |
| INPUT_DIR=`pwd`/mm | |
| cd build-mm | |
| xcodebuild \ | |
| -archivePath MerginMaps.xcarchive \ | |
| -exportOptionsPlist $INPUT_DIR/scripts/ci/ios/exportOptions.plist \ | |
| -exportPath $PWD \ | |
| -allowProvisioningUpdates \ | |
| -exportArchive | |
| - name: Upload .ipa to TestFlight | |
| env: | |
| INPUTAPP_BOT_APPLEID_PASS: ${{ secrets.INPUTAPP_BOT_APPLEID_PASS }} | |
| INPUTAPP_BOT_APPLEID_USER: ${{ secrets.INPUTAPP_BOT_APPLEID_USER }} | |
| INPUTAPP_BOT_GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} | |
| if: success() | |
| run: | | |
| CF_BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" build-mm/app/CMakeFiles/MerginMaps.dir/Info.plist` | |
| echo "Publishing ios ${CF_BUNDLE_VERSION}" | |
| xcrun altool --upload-app -t ios -f build-mm/MerginMaps.ipa -u "$INPUTAPP_BOT_APPLEID_USER" -p "$INPUTAPP_BOT_APPLEID_PASS" --verbose |