Files
qelectrotech-source-mirror/build-aux/linux/appimage/config.sh
T
Laurent Trinques 4d3f20f79a CI: build the Linux AppImage with the Windows CI/CD and list it on the nightly page
Add .github/workflows/linux-appimage.yml, a reusable workflow that runs
the build-aux/linux/appimage scripts on an ubuntu-24.04 runner (same
glibc 2.39 as the reference build host) and publishes the AppImage and
its SHA256 file on the nightly-qt6 release.

It has no trigger of its own: windows-msi.yml calls it in parallel with
build-msi, with the same condition, so the AppImage is only built when
the Windows CI/CD runs. deploy-pages now waits for both jobs; its
condition still only looks at build-msi, so an AppImage failure never
blocks the Windows part of the page.

- Qt (aqtinstall) and the static KDE Frameworks are kept in the Actions
  cache, keyed by QT_VERSION and KF_VERSION: only QET is built per run.
- Checkout without LFS (issue #975) and with full history (revision
  number of the AppImage name).
- The previous AppImage is only deleted from the release once a new one
  has been built, as for the MSI.

Scripts:
- QET_SOURCE_DIR builds an existing checkout instead of cloning QET.
- No dist-upgrade on CI runners; aqt install skipped when Qt is cached.
- RELEASEID.txt/GITCOMMIT.txt are written in the work directory, so
  moving or replacing the scripts directory no longer breaks 03.
- appimage.readme: new CONTINUOUS INTEGRATION section.

generate-page.py: optional Linux section (APPIMAGE_URL, APPIMAGE_NAME),
with the file name shown, since after a failed AppImage build the
previous one stays on the release. Header now "Nightly Builds".
2026-10-25 16:49:09 +01:00

83 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Configuration for the scripts that build the QElectroTech AppImage bundle.
#
# Adapted from the digiKam AppImage scripts by Gilles Caulier.
# Copyright (c) 2015-2019, Gilles Caulier, <caulier dot gilles at gmail dot com>
# Copyright (c) 2026, The QElectroTech Team
#
# Redistribution and use is allowed according to the terms of the BSD license.
########################################################################
# Working directories (nothing is installed in /usr, no root needed
# except for apt in 01-build-host.sh)
WORK_DIR="$HOME/qet-appimage-work"
# Tarballs and tools (appimagetool, excludelist)
DOWNLOAD_DIR="$WORK_DIR/download"
# QET source tree and build tree
BUILDING_DIR="$WORK_DIR/build"
# AppDir assembled before calling appimagetool
APP_IMG_DIR="$WORK_DIR/qelectrotech.appdir"
########################################################################
# Qt6 to bundle
#
# aqt : official Qt binaries installed with aqtinstall (recommended).
# Ubuntu 24.04 only ships Qt 6.4.2.
# system : Ubuntu 24.04 packages (Qt 6.4.2). Builds without KF6, since
# KF 6.10 needs a newer Qt. QET master no longer compiles with
# Qt 6.4 (qFuzzyCompare(QPointF) in sources/cable/cablemanager.cpp):
# only for older QET branches.
QT_FROM=aqt
QT_VERSION=6.11.2
QT_ARCH=linux_gcc_64
QT_ROOT="$WORK_DIR/Qt"
# Extra aqt modules: qtpdf (PDF page import), qtimageformats (more image plugins)
QT_AQT_MODULES="qtpdf qtimageformats"
########################################################################
# QElectroTech source
QET_GITURL="https://github.com/qelectrotech/qelectrotech-source-mirror.git"
# Branch or tag to package, "master" for the current development code.
QET_VERSION=master
# Build an existing QET checkout instead of cloning QET_GITURL in
# $BUILDING_DIR (used by the CI, .github/workflows/linux-appimage.yml).
# The checkout is built as it is: no reset, no pull.
QET_SOURCE_DIR="${QET_SOURCE_DIR:-}"
# Build with KDE Frameworks: ECM, KCoreAddons and KWidgetsAddons are built
# statically against the bundled Qt by 02-build-qet.sh, in $KF_PREFIX.
# 0 = use QET's sources/ui/nokde replacements.
# Forced to 0 when QT_FROM=system.
QET_WITH_KF=1
KF_VERSION=v6.10.0
KF_GITBASE="https://invent.kde.org/frameworks"
KF_PREFIX="$WORK_DIR/kf6"
# 3D mouse support through hidapi (libhidapi-dev). 0 = disabled.
QET_SPACEMOUSE=0
# Keep debug symbols in the qelectrotech binary (bigger AppImage,
# readable backtraces with the "debug" AppRun option).
QET_DEBUG=0
########################################################################
# Publication
# Sign the AppImage with GPG (detached .sig, uses your gpg-agent).
QET_SIGN=0
# Upload with rsync over ssh. "server" is a Host alias in ~/.ssh/config.
QET_UPLOAD=0
QET_UPLOADURL="server"
QET_UPLOADDIR="download.qelectrotech.org/qet/builds/AppImage/0.200.0/X86_64/"