Skip to content

chore: modernize CI and packaging#14600

Open
HTRamsey wants to merge 1 commit into
mavlink:masterfrom
HTRamsey:chore/ci-packaging-refresh
Open

chore: modernize CI and packaging#14600
HTRamsey wants to merge 1 commit into
mavlink:masterfrom
HTRamsey:chore/ci-packaging-refresh

Conversation

@HTRamsey

Copy link
Copy Markdown
Member

Summary

Modernizes the CI and packaging pipeline across platforms:

Windows / NSIS

  • Replace the hand-maintained deploy/windows/nullsoft_installer.nsi + CreateWinInstaller.cmake with CPack's NSIS generator (CreateCPackNSIS.cmake), built via a qgc-package target.
  • CI now exercises an install → upgrade-to-a-new-directory → verify flow, checking that the previous install is removed and user settings in %APPDATA%\QGroundControl survive the upgrade.

Linux native packages

  • New FinalizeNativePackage.cmake and .github/scripts/validate_native_package.py (with unit tests): validates deb/rpm/pacman payload layout — required paths present, Qt runtime bundled privately under /opt/QGroundControl, and no dev headers/static libs/pkgconfig/cmake metadata or global /usr/lib Qt/GStreamer leakage.
  • Docker-based validation script (deploy/docker/validate-native-package.sh) wired into the docker workflow.

Apple

  • Rework cmake/platform/Apple.cmake and templated iOS Info.plist.app.in.

General CI

  • Readable multi-line runs_on expressions, attestation/upload action updates, GStreamer/analysis/profile/custom-build workflow touch-ups, runs-on.yml runner config.

Test Plan

  • Windows workflow: NSIS package builds, install/upgrade/verify steps pass
  • Linux workflow: deb/rpm/pacman packages pass validate_native_package.py
  • macOS/iOS workflows green
  • pytest .github/scripts/tests/test_validate_native_package.py passes

Comment thread .github/workflows/analysis.yml Fixed
Comment thread .github/workflows/build-gstreamer.yml Fixed
Comment thread .github/workflows/build-profile.yml Fixed
@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 31.38%. Comparing base (f29efd3) to head (d20ae7f).
⚠️ Report is 135 commits behind head on master.
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #14600      +/-   ##
==========================================
+ Coverage   25.47%   31.38%   +5.91%     
==========================================
  Files         769      903     +134     
  Lines       65912    81188   +15276     
  Branches    30495    37641    +7146     
==========================================
+ Hits        16788    25480    +8692     
- Misses      37285    38062     +777     
- Partials    11839    17646    +5807     
Flag Coverage Δ
unittests 31.38% <ø> (+5.91%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/LogManager/LogManager.cc 31.21% <ø> (ø)
src/LogManager/LogManager.h 66.66% <ø> (-33.34%) ⬇️
.../QtLocationPlugin/Providers/GenericMapProvider.cpp 21.95% <ø> (ø)
...rc/QtLocationPlugin/Providers/GenericMapProvider.h 80.73% <ø> (ø)
src/QtLocationPlugin/QGCCachedTileSet.cpp 6.14% <ø> (ø)
src/QtLocationPlugin/QGCCachedTileSet.h 100.00% <ø> (ø)
src/QtLocationPlugin/QGeoFileTileCacheQGC.cpp 20.40% <ø> (ø)
src/QtLocationPlugin/QGeoMapReplyQGC.cpp 18.65% <ø> (ø)
src/QtLocationPlugin/QGeoMapReplyQGC.h 0.00% <ø> (ø)
src/QtLocationPlugin/QGeoTileFetcherQGC.cpp 23.80% <ø> (ø)
... and 3 more

... and 560 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3a8c79b...d20ae7f. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Build Results

Platform Status

Platform Status Details
Linux Passed View
Windows Passed View
MacOS Passed View
Android Passed View

All builds passed.

Pre-commit

Check Status Details
pre-commit Failed (non-blocking) View

Pre-commit hooks: 32 passed, 8 failed, 0 skipped.

Test Results

linux-coverage-integration: 28 passed, 0 skipped
linux-coverage-unit: 136 passed, 0 skipped
Total: 164 passed, 0 skipped

Code Coverage

Coverage Baseline Change
65.9% 66.6% -0.7%

Artifact Sizes

Artifact Size Δ from master
QGroundControl 252.51 MB +26.20 MB (increase)
QGroundControl-aarch64 179.62 MB +0.19 MB (increase)
QGroundControl-installer-AMD64 128.24 MB -10.14 MB (decrease)
QGroundControl-installer-AMD64-ARM64 70.65 MB -10.02 MB (decrease)
QGroundControl-installer-ARM64 99.39 MB -9.81 MB (decrease)
QGroundControl-linux 87.10 MB -78.79 MB (decrease)
QGroundControl-mac 87.09 MB +0.00 MB (increase)
QGroundControl-windows 86.16 MB +0.01 MB (increase)
QGroundControl-x86_64 191.43 MB -0.22 MB (decrease)
Total size decreased by 82.58 MB

Updated: 2026-07-16 05:45:30 UTC • Commit: d20ae7f • Triggered by: Android

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch 4 times, most recently from 16f77ff to 0f165e2 Compare July 14, 2026 17:40
@HTRamsey
HTRamsey requested a review from Copilot July 14, 2026 18:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch from 0f165e2 to 0262351 Compare July 14, 2026 22:06
@github-actions github-actions Bot added the Docs label Jul 14, 2026
@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch 3 times, most recently from 1f0d1e7 to cc89774 Compare July 15, 2026 01:00
@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch 3 times, most recently from 201147f to 4820a3f Compare July 15, 2026 05:05
@HTRamsey
HTRamsey marked this pull request as ready for review July 15, 2026 06:19
@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch 13 times, most recently from b79879d to 9847e88 Compare July 16, 2026 04:31
@HTRamsey
HTRamsey force-pushed the chore/ci-packaging-refresh branch from 9847e88 to d20ae7f Compare July 16, 2026 04:46
@DonLakeFlyer DonLakeFlyer added this to the Release V5.2 milestone Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants