Skip to content

Fix Custom Build Widgets Path #5149

Fix Custom Build Widgets Path

Fix Custom Build Widgets Path #5149

Workflow file for this run

name: Linux
on:
push:
branches:
- master
- 'Stable*'
tags:
- 'v*'
paths-ignore:
- 'docs/**' # Do not trigger for any changes under docs
pull_request:
paths:
- '.github/workflows/linux.yml'
- '.github/actions/**'
- 'deploy/linux/**'
- 'src/**'
- 'test/**'
- 'CMakeLists.txt'
- 'cmake/**'
- 'tools/setup/*debian*'
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
build:
name: Build ${{ matrix.arch }} ${{ matrix.build_type }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
os: [ubuntu-24.04-arm, ubuntu-22.04]
include:
- os: ubuntu-24.04-arm
package: QGroundControl-aarch64
host: linux_arm64
arch: linux_gcc_arm64
- os: ubuntu-22.04
package: QGroundControl-x86_64
host: linux
arch: linux_gcc_64
exclude:
- os: ubuntu-24.04-arm
build_type: Debug
defaults:
run:
shell: bash
env:
QT_VERSION: 6.10.0
steps:
- name: Checkout repo
uses: actions/checkout@v5
with:
submodules: recursive
fetch-depth: 1
fetch-tags: true
- name: Initial Setup
uses: ./.github/actions/common
- name: Install Dependencies
run: |
chmod a+x ./tools/setup/install-dependencies-debian.sh
sudo ./tools/setup/install-dependencies-debian.sh
- name: Setup Caching
uses: ./.github/actions/cache
with:
host: ${{ matrix.host }}
target: ${{ matrix.arch }}
build-type: ${{ matrix.build_type }}
cpm-modules: ${{ runner.temp }}/build/cpm_modules
- name: Install Qt for Linux
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
host: ${{ matrix.host }}
target: desktop
arch: ${{ matrix.arch }}
dir: ${{ runner.temp }}
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
setup-python: false
cache: true
# - name: Build GStreamer
# uses: ./.github/actions/gstreamer
- name: Configure
working-directory: ${{ runner.temp }}/build
run: ${{ env.QT_ROOT_DIR }}/bin/qt-cmake -S ${{ github.workspace }} -B . -G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DQGC_BUILD_TESTING=${{ matrix.build_type == 'Debug' && 'ON' || 'OFF' }}
-DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }}
- name: Build
working-directory: ${{ runner.temp }}/build
run: cmake --build . --target all --config ${{ matrix.build_type }} --parallel
- name: Verify Executable
if: matrix.build_type == 'Release'
working-directory: ${{ runner.temp }}/build/${{ matrix.build_type }}
run: xvfb-run -a ./QGroundControl --simple-boot-test
- name: Create AppImage
working-directory: ${{ runner.temp }}/build
run: cmake --install . --config ${{ matrix.build_type }}
- name: Verify AppImage
if: matrix.build_type == 'Release'
working-directory: ${{ runner.temp }}/build
run: xvfb-run -a ./${{ matrix.package }}.AppImage --simple-boot-test
- name: Run Unit Tests
if: matrix.build_type == 'Debug'
working-directory: ${{ runner.temp }}/build
run: xvfb-run -a ./${{ matrix.package }}.AppImage --unittest
- name: Upload Build File
if: matrix.build_type == 'Release'
uses: ./.github/actions/upload
with:
artifact_name: ${{ matrix.package }}.AppImage
package_name: ${{ matrix.package }}
aws_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_distribution_id: ${{ secrets.AWS_DISTRIBUTION_ID }}
github_token: ${{ secrets.GITHUB_TOKEN }}