Skip to content

Optimize map provider iteration to prevent app crashes. Fixed application crash due to segmentation fault. #1962

Optimize map provider iteration to prevent app crashes. Fixed application crash due to segmentation fault.

Optimize map provider iteration to prevent app crashes. Fixed application crash due to segmentation fault. #1962

Workflow file for this run

name: Linux Release
on:
push:
branches:
- 'master'
- 'Stable*'
tags:
- 'v*'
pull_request:
branches:
- '*'
defaults:
run:
shell: bash
env:
SOURCE_DIR: ${{ github.workspace }}
QT_VERSION: 5.15.2
ARTIFACT: QGroundControl.AppImage
BUILD_TYPE: ${{ fromJSON('["DailyBuild", "StableBuild"]')[ github.ref_type == 'tag' || contains(github.ref, 'Stable_' ) ] }}
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
- name: Get all tags for correct version determination
working-directory: ${{ github.workspace }}
run: |
git fetch --all --tags -f --depth 1
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ env.QT_VERSION }}
host: linux
target: desktop
dir: ${{ runner.temp }}
modules: qtcharts
setup-python: true
- name: Install QGC source dependencies
run: sudo apt-get install -y libsdl2-dev
- name: Install Gstreamer
run: sudo apt-get install -y libgstreamer-plugins-base1.0-dev libgstreamer1.0-0:amd64 libgstreamer1.0-dev
- name: Install ccache
run: sudo apt-get install ccache
- name: Install post-link dependencies
run: sudo apt-get install -y binutils patchelf
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
run: echo "name=timestamp::$(date --utc +'%Y-%m-%d-%H\;%M\;%S')" >> $GITHUB_OUTPUT
- name: ccache cache files
uses: actions/cache@v3
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ${{ runner.os }}-ccache-
- name: Setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 5" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: Create build directory
run: mkdir ${{ runner.temp }}/shadow_build_dir
- name: Build
working-directory: ${{ runner.temp }}/shadow_build_dir
run: |
qmake -r ${SOURCE_DIR}/qgroundcontrol.pro CONFIG+=installer CONFIG+=${BUILD_TYPE}
make -j2
- name: ccache post-run
run: ccache -s
- name: Create AppImage
working-directory: ${{ runner.temp }}/shadow_build_dir
run: ${SOURCE_DIR}/deploy/create_linux_appimage.sh ${SOURCE_DIR} ./staging ./package;
- name: Save artifact
uses: actions/upload-artifact@master
with:
name: ${{ env.ARTIFACT }}
path: ${{ runner.temp }}/shadow_build_dir/package/${{ env.ARTIFACT }}
- name: Upload build to S3 Bucket
if: github.event_name == 'push'
working-directory: ${{ runner.temp }}/shadow_build_dir/package
run: |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws s3 cp ${ARTIFACT} s3://qgroundcontrol/builds/${{ github.ref_name }}/${ARTIFACT} --region us-west-2 --acl public-read
- name: Upload tagged stable build to S3 latest Bucket
if: github.event_name == 'push' && github.ref_type == 'tag'
working-directory: ${{ runner.temp }}/shadow_build_dir/package
run: |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws s3 cp ${ARTIFACT} s3://qgroundcontrol/latest/${ARTIFACT} --region us-west-2 --acl public-read