7
7
- ' Stable*'
8
8
tags :
9
9
- ' v*'
10
+ workflow_dispatch :
10
11
pull_request :
11
12
paths :
12
13
- ' .github/workflows/linux.yml'
20
21
21
22
jobs :
22
23
build :
23
- runs-on : ubuntu-22.04
24
+ runs-on : ${{ matrix.runs-on }}
24
25
25
26
strategy :
26
27
matrix :
27
28
BuildType : [Debug, Release]
28
- # Arch: [x64] # Arm64
29
+ runs-on : [ubuntu-24.04-arm, ubuntu-22.04]
30
+ include :
31
+ - runs-on : ubuntu-24.04-arm
32
+ ARTIFACT : QGroundControl-aarch64.AppImage
33
+ PACKAGE : QGroundControl-aarch64
34
+ host : linux_arm64
35
+ arch : linux_gcc_arm64
36
+ - runs-on : ubuntu-22.04
37
+ ARTIFACT : QGroundControl-x86_64.AppImage
38
+ PACKAGE : QGroundControl-x86_64
39
+ host : linux
40
+ arch : linux_gcc_64
29
41
30
42
defaults :
31
43
run :
32
44
shell : bash
33
45
34
46
env :
35
- ARTIFACT : QGroundControl-x86_64.AppImage
36
- PACKAGE : QGroundControl-x86_64
37
47
QT_VERSION : 6.8.1
38
48
GST_VERSION : 1.22.12
39
49
CPM_SOURCE_CACHE : ${{ github.workspace }}/cpm_modules
@@ -55,33 +65,30 @@ jobs:
55
65
56
66
- name : Install Vulkan
57
67
run : |
58
- wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
59
- sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list http://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
60
- sudo apt update
61
- sudo apt install vulkan-sdk
62
-
63
- - name : Install Compiler
64
- run : |
65
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
66
- sudo apt install gcc-11 g++-11
67
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
68
- sudo update-alternatives --set gcc /usr/bin/gcc-11
68
+ sudo apt install -y --quiet libvulkan-dev
69
+ if apt-cache show vulkan-validationlayers-dev >/dev/null 2>&1 && apt-cache show vulkan-validationlayers-dev 2>/dev/null | grep -q "^Package: vulkan-validationlayers-dev"; then
70
+ sudo apt-get install -y --quiet vulkan-validationlayers-dev
71
+ fi
72
+ if apt-cache show vulkan-utility-libraries-dev >/dev/null 2>&1 && apt-cache show vulkan-utility-libraries-dev 2>/dev/null | grep -q "^Package: apt-cache show vulkan-utility-libraries-dev"; then
73
+ sudo apt-get install -y --quiet vulkan-utility-libraries-dev
74
+ fi
69
75
70
76
- name : Setup Caching
77
+ if : ${{ matrix.arch=='linux_gcc_64' }}
71
78
uses : ./.github/actions/cache
72
79
with :
73
- host : linux
74
- target : linux_gcc_64
80
+ host : ${{ matrix.host }}
81
+ target : desktop
75
82
build-type : ${{ matrix.BuildType }}
76
83
cpm-modules : ${{ env.CPM_SOURCE_CACHE }}
77
84
78
- - name : Install Qt for Linux (x64)
79
- uses : jurplel /install-qt-action@v4
85
+ - name : Install Qt for Linux
86
+ uses : jdpurcell /install-qt-action@b45c67aaa9e0ea77e59a7031ec14a12d5ddf4b35
80
87
with :
81
88
version : ${{ env.QT_VERSION }}
82
- host : linux
89
+ host : ${{ matrix.host }}
83
90
target : desktop
84
- arch : linux_gcc_64
91
+ arch : ${{ matrix.arch }}
85
92
dir : ${{ runner.temp }}
86
93
modules : qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
87
94
@@ -106,19 +113,19 @@ jobs:
106
113
- name : Sanity check release excecutable
107
114
if : matrix.BuildType == 'Release'
108
115
working-directory : ${{ runner.temp }}/shadow_build_dir
109
- run : xvfb-run -a ./${{ env .ARTIFACT }} --simple-boot-test
116
+ run : xvfb-run -a ./${{ matrix .ARTIFACT }} --simple-boot-test
110
117
111
118
- name : Run unit tests
112
119
if : matrix.BuildType == 'Debug'
113
120
working-directory : ${{ runner.temp }}/shadow_build_dir
114
- run : xvfb-run -a ./${{ env .ARTIFACT }} --unittest
121
+ run : xvfb-run -a ./${{ matrix .ARTIFACT }} --unittest
115
122
116
123
- name : Upload Build File
117
124
if : matrix.BuildType == 'Release'
118
125
uses : ./.github/actions/upload
119
126
with :
120
- artifact_name : ${{ env .ARTIFACT }}
121
- package_name : ${{ env .PACKAGE }}
127
+ artifact_name : ${{ matrix .ARTIFACT }}
128
+ package_name : ${{ matrix .PACKAGE }}
122
129
aws_key_id : ${{ secrets.AWS_ACCESS_KEY_ID }}
123
130
aws_secret_access_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
124
131
github_token : ${{ secrets.GITHUB_TOKEN }}
0 commit comments