Use fastlane for more ci stability #2844
Workflow file for this run
This file contains 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: π 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 }} |