Skip to content

Commit

Permalink
CI: Add iOS Workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
HTRamsey committed Apr 27, 2024
1 parent efbc152 commit 6fcd62a
Showing 1 changed file with 112 additions and 0 deletions.
112 changes: 112 additions & 0 deletions .github/workflows/ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: iOS

on:
push:
branches:
- master
- 'Stable*'
tags:
- 'v*'
paths-ignore:
- 'docs/**'
- 'android/**'
pull_request:
paths-ignore:
- 'docs/**'
- 'android/**'

jobs:
build:
runs-on: macos-latest

strategy:
matrix:
BuildType: [Release]

env:
ARTIFACT: QGroundControl.app
QT_VERSION: 6.6.3

steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
fetch-tags: true

- name: Set up Cache
uses: hendrikmuhs/[email protected]
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
with:
create-symlink: true
key: ${{ runner.os }}-${{ matrix.BuildType }}
restore-keys: ${{ runner.os }}-${{ matrix.BuildType }}
max-size: 1G
append-timestamp: false

- uses: actions/checkout@v4
with:
repository: jurplel/install-qt-action
ref: master
path: install-qt-action

- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: install-qt-action/action/

- name: Build jurplel/install-qt-action
run: |
cd install-qt-action/action/
npm ci || npm install
npm run build
shell: bash

- name: Install Qt6 for MacOS
uses: ./install-qt-action/action/
with:
version: ${{ env.QT_VERSION }}
host: mac
target: desktop
dir: ${{ runner.temp }}
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d
cache: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}

- name: Install Qt6 for iOS
uses: ./install-qt-action/action/
with:
version: ${{ env.QT_VERSION }}
host: mac
target: ios
dir: ${{ runner.temp }}
extra: --autodesktop
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtimageformats qtshadertools qtconnectivity qtquick3d
cache: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}

- name: Install Dependencies
run: brew install ninja

- name: Create build directory
run: mkdir ${{ runner.temp }}/shadow_build_dir

- name: Configure
working-directory: ${{ runner.temp }}/shadow_build_dir
run: ${{ env.QT_ROOT_DIR }}/bin/qt-cmake -S ${{ github.workspace }} -B . -G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.BuildType }}
-DQT_HOST_PATH="${{ env.QT_ROOT_DIR }}/../macos"
-DQT_DEBUG_FIND_PACKAGE=ON
-DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }}

- name: Build
working-directory: ${{ runner.temp }}/shadow_build_dir
run: cmake --build . --target all --config ${{ matrix.BuildType }}

- name: Upload Build File
uses: ./.github/actions/upload
if: matrix.BuildType == 'Release'
with:
artifact_name: ${{ env.ARTIFACT }}
aws_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
source: ''

0 comments on commit 6fcd62a

Please sign in to comment.