Skip to content

Use fastlane for more ci stability #2844

Use fastlane for more ci stability

Use fastlane for more ci stability #2844

Workflow file for this run

---
name: 🍎 MacOS
on:
push:
branches:
- master
- release-**
pull_request:
release:
types: ['published']
jobs:
build:
name: build (macos)
runs-on: macos-11
steps:
- name: 🐣 Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: 🌾 Prepare vars
id: vars
run: |
./scripts/ci/env_gh.sh
BUILD_ROOT="/Users/runner"
echo "BUILD_ROOT=${BUILD_ROOT}" >> $GITHUB_ENV
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
echo "CMAKE_BUILD_DIR=${BUILD_ROOT}/builddir" >> $GITHUB_ENV
- name: 🐩 Install CMake and Ninja
uses: lukka/get-cmake@latest
- name: πŸ”¨ Prepare build env
run: |
brew install automake bison flex gnu-sed create-dmg autoconf-archive
echo $(brew --prefix bison)/bin >> $GITHUB_PATH
echo $(brew --prefix flex)/bin >> $GITHUB_PATH
- name: βš’ Setup XCode
uses: maxim-lobanov/[email protected]
with:
xcode-version: latest-stable
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-macos-qt6
max-size: 200M
- uses: Apple-Actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.APPLE_CODESIGN_CERT_BASE64_DEV }}
p12-password: ${{ secrets.APPLE_CODESIGN_CERT_PASS_DEV }}
- uses: Apple-Actions/download-provisioning-profiles@v1
with:
bundle-id: ch.opengis.qfield
issuer-id: ${{ secrets.IOS_APPSTORE_ISSUER_ID }}
api-key-id: ${{ secrets.IOS_APPSTORE_KEY_ID }}
api-private-key: ${{ secrets.IOS_APPSTORE_PRIVATE_KEY }}
- name: 🐍 Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: 🌱 Install dependencies and generate project files
run: |
source ./scripts/version_number.sh
source ./scripts/ci/generate-version-details.sh
# TODO: Enable spix when it supports Qt 6.5
cmake -S "${{ github.workspace }}" \
-B "${CMAKE_BUILD_DIR}" \
-G Xcode \
-T buildsystem=1 \
-D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-D WITH_VCPKG=ON \
-D WITH_SPIX=OFF \
-D WITH_NFC=OFF \
-D APP_VERSION="${APP_VERSION}" \
-D APP_VERSION_STR="${APP_VERSION_STR}" \
-D APP_PACKAGE_NAME="${APP_PACKAGE_NAME}" \
-D ENABLE_TESTS=ON \
-D NUGET_USERNAME=opengisch \
-D NUGET_TOKEN=${{ secrets.GITHUB_TOKEN }} \
-D SENTRY_DSN=${{ secrets.SENTRY_DSN }} \
-D SENTRY_ENV="${APP_ENV}" \
-D MACOS_CODE_SIGN_IDENTITY="Apple Development" \
-D CMAKE_CXX_VISIBILITY_PRESET=hidden \
-D WITH_CCACHE=ON
- name: πŸŒ‹ Build
run: |
# https://www.reddit.com/r/MacOS/comments/f37ybt/osascript_cant_open_default_scripting_component/?utm_medium=android_app&utm_source=share
sudo rm -rf /Library/Audio/Plug-Ins/Components
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --config ${{ env.BUILD_TYPE }}
- name: 🧫 Test
env:
PROJ_LIB: ${{ env.CMAKE_BUILD_DIR }}/vcpkg_installed/x64-osx/share/proj
QFIELD_SYSTEM_SHARED_DATA_PATH: ${{ env.CMAKE_BUILD_DIR }}/vcpkg_installed/x64-osx/share
run: |
pip install -r "${{ github.workspace }}/test/spix/requirements.txt"
cd "${{ env.CMAKE_BUILD_DIR }}"
# At the moment this does nothing as QField isn't built with spix
ctest --output-on-failure -R smoke -C ${{ env.BUILD_TYPE }}
- name: πŸ“¦ Package
run: |
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target bundle --config ${{ env.BUILD_TYPE }}
- name: πŸ“¦ Upload package
uses: actions/upload-artifact@v3
with:
name: "QField-dev-x64-osx-experimental-qt6"
path: ${{ env.CMAKE_BUILD_DIR }}/QField-Installer.dmg
- name: πŸ“Š Upload test report
if: always()
uses: actions/upload-artifact@v3
with:
name: "test-report-x64-osx-${{ env.BUILD_TYPE }}"
path: "${{ env.CMAKE_BUILD_DIR }}/report"
- name: πŸ“‘ Upload logs
uses: actions/upload-artifact@v3
if: failure()
with:
name: logs-x64-osx
path: |
${{ env.CMAKE_BUILD_DIR }}/**/*.log
- name: ♾️ Upload debug symbols
# if: release or labeled PR
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: |
export INSTALL_DIR=$(pwd)
curl -sL https://sentry.io/get-cli/ | bash
./sentry-cli upload-dif -o opengisch -p qfield ${{ env.CMAKE_BUILD_DIR }}