-
Notifications
You must be signed in to change notification settings - Fork 0
138 lines (122 loc) · 4.97 KB
/
Copy pathbuilds_mobile.yml
File metadata and controls
138 lines (122 loc) · 4.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#-------------------------------------------------------------------------------
# Workflow configuration
#-------------------------------------------------------------------------------
name: "Mobile CI builds"
on:
push:
pull_request:
workflow_dispatch:
#-------------------------------------------------------------------------------
# Define application name & version
#-------------------------------------------------------------------------------
env:
APP_NAME: "QmlMobileScanner"
APP_VERSION: "0.3"
QT_VERSION: "6.7.3"
#-------------------------------------------------------------------------------
# Workflow jobs
#-------------------------------------------------------------------------------
jobs:
## Android build #############################################################
build-android:
name: "Android CI build"
runs-on: ubuntu-24.04
steps:
# Checkout repository (and submodules)
- name: Checkout repository (and submodules)
uses: actions/checkout@v4
with:
submodules: recursive
# Java environment (already installed in 'ubuntu-24.04')
#- name: Setup Java environment
# uses: actions/setup-java@v4
# with:
# distribution: 'temurin'
# java-version: '17'
# Android environment (already installed in 'ubuntu-24.04')
#- name: Setup Android environment
# uses: android-actions/setup-android@v3
#- name: Install Android SDK / NDK / tools
# run: |
# sdkmanager "platforms;android-36"
# sdkmanager "ndk;26.1.10909125"
# sdkmanager "build-tools;36.0.0"
# Install Qt (desktop & Android)
- name: Install Qt (desktop & Android)
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
host: 'linux'
target: 'android'
arch: 'android_arm64_v8a'
modules: qtmultimedia qtpositioning
extra: '--autodesktop'
# Install dependencies (from package manager)
- name: Install dependencies (from package manager)
run: |
sudo apt-get install cmake ninja-build -y;
# Setup env
- name: Setup env
run: |
echo "QT_HOST_PATH=/home/runner/work/${{env.APP_NAME}}/Qt/${{env.QT_VERSION}}/gcc_64" >> $GITHUB_ENV
echo "QT_TARGET_PATH=/home/runner/work/${{env.APP_NAME}}/Qt/${{env.QT_VERSION}}/android_arm64_v8a" >> $GITHUB_ENV
qmake --version
cmake --version
# Build application
- name: Build application
run: |
${{env.QT_TARGET_PATH}}/bin/qt-cmake --version
${{env.QT_TARGET_PATH}}/bin/qt-cmake -B build/ -G Ninja \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_FIND_ROOT_PATH:PATH=${{env.QT_TARGET_PATH}} \
-DCMAKE_PREFIX_PATH:PATH=${{env.QT_TARGET_PATH}} \
-DANDROID_SDK_ROOT=$ANDROID_SDK_ROOT \
-DANDROID_NDK_ROOT=$ANDROID_NDK_ROOT \
-DANDROID_PLATFORM=android-23 \
-DANDROID_ABI="arm64-v8a" \
-DQT_HOST_PATH:PATH=${{env.QT_HOST_PATH}} \
-DQT_ANDROID_BUILD_ALL_ABIS=ON \
-DQT_ANDROID_ABIS="armeabi-v7a;arm64-v8a;x86;x86_64"
cmake --build build/ --config Release
## iOS build #################################################################
build-ios:
name: "iOS CI build"
runs-on: macos-15
steps:
# Checkout repository (and submodules)
- name: Checkout repository (and submodules)
uses: actions/checkout@v4
with:
submodules: recursive
# Install Qt (desktop & iOS)
- name: Install Qt (desktop & iOS)
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
host: 'mac'
target: 'ios'
modules: qtmultimedia qtpositioning
extra: '--autodesktop'
# Install dependencies (from package manager)
#- name: Install dependencies (from package manager)
# run: |
# brew install cmake ninja
# Setup env
- name: Setup env
run: |
echo "QT_HOST_PATH=/Users/runner/work/${{env.APP_NAME}}/Qt/${{env.QT_VERSION}}/macos" >> $GITHUB_ENV
echo "QT_TARGET_PATH=/Users/runner/work/${{env.APP_NAME}}/Qt/${{env.QT_VERSION}}/ios" >> $GITHUB_ENV
qmake --version
cmake --version
# Build application
- name: Build application
run: |
${{env.QT_TARGET_PATH}}/bin/qt-cmake --version
${{env.QT_TARGET_PATH}}/bin/qt-cmake -B build/ -G Xcode \
-DCMAKE_SYSTEM_NAME=iOS \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_FIND_ROOT_PATH:PATH=${{env.QT_TARGET_PATH}} \
-DCMAKE_PREFIX_PATH:PATH=${{env.QT_TARGET_PATH}} \
-DQT_HOST_PATH:PATH=${{env.QT_HOST_PATH}}
cmake --build build/ --config Release -- CODE_SIGNING_ALLOWED=NO