Skip to content

AirLink: Convert to Singleton #2238

AirLink: Convert to Singleton

AirLink: Convert to Singleton #2238

Workflow file for this run

name: Linux
on:
push:
branches:
- master
- 'Stable*'
tags:
- 'v*'
paths-ignore:
- 'android/**'
- 'deploy/**'
- 'docs/**'
pull_request:
paths-ignore:
- 'android/**'
- 'deploy/**'
- 'docs/**'
- '.github/workflows/docs_deploy.yml'
- '.github/workflows/android.yml'
- '.github/workflows/macos.yml'
- '.github/workflows/windows.yml'
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
BuildType: [Debug, Release]
defaults:
run:
shell: bash
env:
ARTIFACT: QGroundControl-x86_64.AppImage
QT_VERSION: 6.6.3
GST_VERSION: 1.22.12
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
large-packages: false
continue-on-error: true
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
fetch-tags: true
fetch-depth: 0
- name: Install Dependencies
run: |
chmod a+x ./tools/setup/install-dependencies-debian.sh
sudo ./tools/setup/install-dependencies-debian.sh
python3 -m pip install --user ninja cmake
- name: Install Vulkan
run: |
wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.283-focal.list https://packages.lunarg.com/vulkan/1.3.283/lunarg-vulkan-1.3.283-focal.list
sudo apt update
sudo apt install vulkan-sdk
- name: Install Compiler
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install gcc-11 g++-11
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
sudo update-alternatives --set gcc /usr/bin/gcc-11
- name: Install CCache
run: |
wget --quiet https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2-linux-x86_64.tar.xz
tar -xvf ccache-*-linux-x86_64.tar.xz
cd ccache-*-linux-x86_64
sudo make install
- name: Set Up Cache
uses: hendrikmuhs/[email protected]
with:
create-symlink: true
key: ${{ runner.os }}-${{ matrix.BuildType }}
restore-keys: ${{ runner.os }}-${{ matrix.BuildType }}
max-size: 1G
append-timestamp: false
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
- name: Install Qt for Linux
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
aqtversion: ==3.1.*
host: linux
target: desktop
arch: gcc_64
dir: ${{ runner.temp }}
modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors
cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
# - name: Build GStreamer
# uses: ./.github/actions/gstreamer
- name: Install GStreamer
uses: blinemedical/setup-gstreamer@v1
with:
version: ${{ env.GST_VERSION }}
# gstreamerOptions: |
# --buildtype=release
# --wrap-mode=forcefallback
# --strip
# -Dauto_features=disabled
# -Dbase=enabled
# -Ddoc=disabled
# -Dexamples=disabled
# -Dges=disabled
# -Dgpl=enabled
# -Dgst-examples=disabled
# -Dgtk_doc=disabled
# -Dlibav=enabled
# -Dlibnice=disabled
# -Dnls=disabled
# -Dorc=enabled
# -Dpython=disabled
# -Dqt5=disabled
# -Drtsp_server=disabled
# -Dtests=disabled
# -Dgst-plugins-base:app=enabled
# -Dgst-plugins-base:gl=enabled
# -Dgst-plugins-base:gl_api=opengl,gles2
# -Dgst-plugins-base:gl_platform=glx,egl
# -Dgst-plugins-base:gl_winsys=x11,egl,wayland
# -Dgst-plugins-base:playback=enabled
# -Dgst-plugins-base:tcp=enabled
# -Dgst-plugins-base:x11=enabled
# -Dgood=enabled
# -Dgst-plugins-good:isomp4=enabled
# -Dgst-plugins-good:matroska=enabled
# -Dgst-plugins-good:qt-egl=enabled
# -Dgst-plugins-good:qt-method=auto
# -Dgst-plugins-good:qt-wayland=enabled
# -Dgst-plugins-good:qt-x11=enabled
# -Dgst-plugins-good:rtp=enabled
# -Dgst-plugins-good:rtpmanager=enabled
# -Dgst-plugins-good:rtsp=enabled
# -Dgst-plugins-good:udp=enabled
# -Dbad=enabled
# -Dgst-plugins-bad:gl=enabled
# -Dgst-plugins-bad:mpegtsdemux=enabled
# -Dgst-plugins-bad:rtp=enabled
# -Dgst-plugins-bad:sdp=enabled
# -Dgst-plugins-bad:videoparsers=enabled
# -Dgst-plugins-bad:wayland=enabled
# -Dgst-plugins-bad:x11=enabled
# -Dgst-plugins-bad:x265=enabled
# -Dugly=enabled
# -Dgst-plugins-ugly:x264=enabled
- uses: lukka/get-cmake@latest
- uses: seanmiddleditch/gha-setup-ninja@v5
- 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 }}
-DQGC_BUILD_TESTING=${{ matrix.BuildType == 'Debug' && 'ON' || 'OFF' }}
-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: Create AppImage
working-directory: ${{ runner.temp }}/shadow_build_dir
run: cmake --install . --config ${{ matrix.BuildType }}
- name: Run unit tests
if: matrix.BuildType == 'Debug'
working-directory: ${{ runner.temp }}/shadow_build_dir
run: xvfb-run -a ./${{ env.ARTIFACT }} --unittest
- name: Upload Build File
if: matrix.BuildType == 'Release'
uses: ./.github/actions/upload
with:
artifact_name: ${{ env.ARTIFACT }}
aws_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
source: ''
github_token: ${{ secrets.GITHUB_TOKEN }}