tools: Update iOS toolchain #3569
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: Build and Test | |
on: | |
push: | |
branches: | |
- 'main' | |
tags: | |
- 'v*' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
macOS: | |
name: ${{ matrix.name }} | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
include: | |
- name: macOS | |
build-framework: OFF | |
- name: macOS-framework | |
build-framework: ON | |
steps: | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
architecture: 'x64' | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: actions/cache@v3 | |
id: cache | |
with: | |
path: ./build/macos/third_party/install | |
key: ${{ github.job }}-${{ matrix.name }}-${{ hashFiles('./third_party/**') }} | |
- name: disable superbuild on cache hit | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: echo "superbuild=-DSUPERBUILD=OFF" >> $GITHUB_ENV && echo "cmake_prefix_path=-DCMAKE_PREFIX_PATH=$(pwd)/build/macos/third_party/install" >> $GITHUB_ENV | |
- name: set SDKROOT value | |
run: echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV | |
- name: configure | |
run: cmake $superbuild $cmake_prefix_path -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=build/macos/install -DBUILD_MAVSDK_SERVER=ON -DBUILD_SHARED_LIBS=OFF -DMACOS_FRAMEWORK=${{ matrix.build-framework }} -DWERROR=OFF -DENABLE_CPPTRACE=On -Bbuild/macos -H. | |
- name: build | |
run: cmake --build build/macos -j2 --target install | |
- name: unit tests | |
run: ./build/macos/src/unit_tests/unit_tests_runner | |
- name: system tests | |
run: ./build/macos/src/system_tests/system_tests_runner | |
- name: test (mavsdk_server) | |
run: ./build/macos/src/mavsdk_server/test/unit_tests_mavsdk_server | |
- name: Upload framework as artefact | |
if: ${{ matrix.build-framework == 'ON' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mavsdk_server_macos.framework | |
path: ./build/macos/src/mavsdk_server/src/mavsdk_server.framework | |
retention-days: 2 | |
- name: Publish mavsdk_server_macos to github release | |
if: ${{ startsWith(github.ref, 'refs/tags/v') && matrix.build-framework == 'OFF' }} | |
uses: svenstaro/upload-release-action@v1-release | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: 'build/macos/install/bin/mavsdk_server' | |
asset_name: 'mavsdk_server_macos' | |
tag: ${{ github.ref }} | |
overwrite: true | |
iOS: | |
name: ${{ matrix.name }} | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
include: | |
- name: ios | |
platform: OS64 | |
sdk: iphoneos | |
- name: ios_simulator | |
platform: SIMULATOR64 | |
sdk: iphonesimulator | |
steps: | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
architecture: 'x64' | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: actions/cache@v3 | |
id: cache | |
with: | |
path: ./build/${{ matrix.name }}/third_party/install | |
key: ${{ github.job }}-${{ matrix.name }}-${{ hashFiles('./third_party/**', './tools/ios.toolchain.cmake') }} | |
- name: disable superbuild on cache hit | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: echo "superbuild=-DSUPERBUILD=OFF" >> $GITHUB_ENV && echo "cmake_prefix_path=-DCMAKE_PREFIX_PATH=$(pwd)/build/${{ matrix.name }}/third_party/install" >> $GITHUB_ENV | |
- name: set SDK-related environment variables (for non-cmake deps) | |
run: | | |
echo "SDKROOT=$(xcrun --sdk ${{ matrix.sdk }} --show-sdk-path)" >> $GITHUB_ENV | |
- name: install pymavlink dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install wheel | |
python3 -m pip install future | |
- name: configure | |
run: cmake $superbuild $cmake_prefix_path -DENABLE_STRICT_TRY_COMPILE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=$(pwd)/tools/ios.toolchain.cmake -DENABLE_BITCODE=Off -DPLATFORM=${{ matrix.platform }} -DDEPLOYMENT_TARGET=14.0 -DBUILD_MAVSDK_SERVER=ON -DBUILD_SHARED_LIBS=OFF -DWERROR=OFF -Bbuild/${{ matrix.name }} -H. | |
- name: build | |
run: cmake --build build/${{ matrix.name }} -j2 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: mavsdk_server_${{ matrix.name }}.framework | |
path: ./build/${{ matrix.name }}/src/mavsdk_server/src/mavsdk_server.framework | |
retention-days: 2 | |
iOS-XCFramework: | |
name: iOS XCFramework | |
needs: [macOS, iOS] | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: actions/download-artifact@v3 | |
with: | |
name: mavsdk_server_ios.framework | |
path: ./build/ios/src/mavsdk_server/src/mavsdk_server.framework | |
- uses: actions/download-artifact@v3 | |
with: | |
name: mavsdk_server_ios_simulator.framework | |
path: ./build/ios_simulator/src/mavsdk_server/src/mavsdk_server.framework | |
- uses: actions/download-artifact@v3 | |
with: | |
name: mavsdk_server_macos.framework | |
path: ./build/macos/src/mavsdk_server/src/mavsdk_server.framework | |
- name: Package | |
run: bash ./src/mavsdk_server/tools/package_mavsdk_server_framework.bash | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: mavsdk_server.xcframework | |
path: ./build/mavsdk_server.xcframework | |
retention-days: 2 | |
- name: Publish xcframework | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: svenstaro/upload-release-action@v1-release | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: 'build/mavsdk_server.xcframework.zip' | |
asset_name: 'mavsdk_server.xcframework.zip' | |
tag: ${{ github.ref }} | |
overwrite: true | |
- name: Publish xcframework checksum | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: svenstaro/upload-release-action@v1-release | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: 'build/mavsdk_server.xcframework.zip.sha256' | |
asset_name: 'mavsdk_server.xcframework.zip.sha256' | |
tag: ${{ github.ref }} | |
overwrite: true |