-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Try alternative approach to build appimage
- Loading branch information
Showing
1 changed file
with
129 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
#------------------------------------------------------------------------------- | ||
# Workflow configuration | ||
#------------------------------------------------------------------------------- | ||
|
||
name: AppImage | ||
|
||
on: | ||
push: # Run on push | ||
paths-ignore: # File patterns to ignore | ||
- '**.md' # Ignore changes to *.md files | ||
|
||
pull_request: # Run on pull-request | ||
paths-ignore: # File-patterns to ignore | ||
- '**.md' # Ignore changes to *.md files | ||
|
||
#------------------------------------------------------------------------------- | ||
# Define application name & version | ||
#------------------------------------------------------------------------------- | ||
|
||
env: | ||
VERSION: "2.0-beta1" | ||
QT_VERSION_LINUX: 6.8.1 | ||
QT_VERSION_MACOS: 6.8.1 | ||
QT_VERSION_WINDOWS: 6.8.1 | ||
EXECUTABLE: "kraft" | ||
APPLICATION: "kraft" | ||
UNIXNAME: "kraft" | ||
QML_DIR: "" | ||
PUBLISHER: "Klaas Freitag" | ||
DESCRIPTION: "Documents for the small business" | ||
QT_MODULES: qtcore qtwidgets qtcontcurrent qtsql qttest qtxml qtsvg | ||
# QT_MODULES: qt3d qtgraphs qtquick3d qtlocation qtdatavis3d qtserialport qtshadertools qtpositioning qtconnectivity | ||
|
||
#------------------------------------------------------------------------------- | ||
# Workflow jobs (GNU/Linux, macOS & Windows) | ||
#------------------------------------------------------------------------------- | ||
|
||
jobs: | ||
# | ||
# Linux build | ||
# | ||
build-linux-x86_64: | ||
runs-on: ubuntu-22.04 | ||
name: '🐧 Linux (x86_64)' | ||
steps: | ||
- name: '🧰 Checkout' | ||
uses: actions/checkout@v4 | ||
|
||
- name: '⚙️ Install Qt' | ||
uses: jurplel/install-qt-action@v4 | ||
with: | ||
version: ${{env.QT_VERSION_LINUX}} | ||
modules: ${{env.QT_MODULES}} | ||
cache: true | ||
install-deps: 'true' | ||
|
||
- name: 'Install KF6 Snap' | ||
run: | | ||
sudo snap install kf6-core22-sdk | ||
- name: '⚙️ Install dependencies' | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y \ | ||
libcups2-dev \ | ||
libgl1-mesa-dev \ | ||
libxkbcommon-x11-0 \ | ||
libxcb-icccm4 \ | ||
libxcb-image0 \ | ||
libxcb-keysyms1 \ | ||
libxcb-render-util0 \ | ||
libxcb-xinerama0 \ | ||
libzstd-dev \ | ||
libxcb-image0-dev \ | ||
libxcb-util0-dev \ | ||
libxcb-cursor-dev \ | ||
libssl-dev \ | ||
libudev-dev \ | ||
rpm \ | ||
libfuse2 \ | ||
fakeroot \ | ||
libctemplate-devel | ||
- name: '⚙️ Install CMake' | ||
uses: lukka/get-cmake@latest | ||
with: | ||
useLocalCache: true | ||
|
||
- name: '⚙️ Install Intel Compiler' | ||
uses: fortran-lang/setup-fortran@v1 | ||
with: | ||
compiler: intel | ||
version: 2024.1 | ||
|
||
- name: '🚧 Configure with CMake' | ||
run: | | ||
mkdir build | ||
cd build | ||
cmake ../ -DCMAKE_CXX_COMPILER=icpx -DCMAKE_C_COMPILER=icx -DPRODUCTION_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release | ||
- name: '🚧 Build application' | ||
run: | | ||
cd build | ||
cmake --build . --config Release -j 16 | ||
- name: '📦 Create AppImage' | ||
run: | | ||
cd "build/app" | ||
wget https://github.com/dantti/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage | ||
wget https://github.com/dantti/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage | ||
chmod +x linuxdeploy-x86_64.AppImage | ||
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage | ||
export QML_SOURCES_PATHS="${{env.QML_DIR}}" | ||
export QMAKE=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION_LINUX}}/gcc_64/bin/qmake | ||
export PATH=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION_LINUX}}/gcc_64/libexec:$PATH | ||
./linuxdeploy-x86_64.AppImage --appdir AppDir -e ${{env.UNIXNAME}} -i ../../app/deploy/linux/${{env.UNIXNAME}}.png -d ../../app/deploy/linux/${{env.UNIXNAME}}.desktop --plugin qt --output appimage | ||
rm linuxdeploy-x86_64.AppImage | ||
rm linuxdeploy-plugin-qt-x86_64.AppImage | ||
mv *.AppImage ../../${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage | ||
- name: '📤 Upload artifact: AppImage' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage | ||
path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage |