88jobs :
99 build-linux :
1010 runs-on : ubuntu-latest
11- container : ubuntu:20.04 # 👈 Run everything inside Ubuntu 20.04
11+ container : ubuntu:20.04 # Build inside Ubuntu 20.04 for wide Linux compatibility
1212 env :
13- APP_NAME : LikeTaskManager # <- change
14- PROJ_FILE : LikeTaskManager.pro # <- path to your .pro (relative to repo root)
13+ APP_NAME : LikeTaskManager
14+ PROJ_FILE : LikeTaskManager.pro
1515 BUILD_DIR : ${{ github.workspace }}/build
1616 APPDIR : ${{ github.workspace }}/AppDir
17- QT_VERSION : " 6.5.3" # Qt6 LTS version that still has Ubuntu 20.04 binaries
17+ QT_VERSION : " 6.5.3" # Qt6 LTS version compatible with Ubuntu 20.04
1818
1919 steps :
20- - name : Checkout
20+ - name : Checkout repository
2121 uses : actions/checkout@v4
2222
23- - name : Install system deps
23+ - name : Install system dependencies
2424 run : |
2525 apt-get update
2626 DEBIAN_FRONTEND=noninteractive apt-get install -y \
@@ -45,45 +45,49 @@ jobs:
4545 install-deps : ' true'
4646 cache : ' true'
4747
48- - name : Show which qmake we have
48+ - name : Verify qmake
4949 run : |
50- which qmake || true
51- qmake -v || true
50+ which qmake
51+ qmake -v
5252
53- - name : Build ( qmake)
53+ - name : Build with qmake
5454 run : |
5555 set -e
56- mkdir -p "${{ env. BUILD_DIR }} "
57- cd "${{ env. BUILD_DIR }} "
58- qmake "$GITHUB_WORKSPACE/${{ env. PROJ_FILE }} "
56+ mkdir -p "$BUILD_DIR"
57+ cd "$BUILD_DIR"
58+ qmake "$GITHUB_WORKSPACE/$PROJ_FILE"
5959 make -j$(nproc)
6060
61- - name : Install into AppDir
61+ - name : Stage install into AppDir
6262 run : |
6363 set -e
64- mkdir -p "${{ env. APPDIR }} "
65- cd "${{ env. BUILD_DIR }} "
66- make INSTALL_ROOT="${{ env. APPDIR }} " install
67- find "${{ env. APPDIR }} " -maxdepth 3 -print
64+ mkdir -p "$APPDIR"
65+ cd "$BUILD_DIR"
66+ make INSTALL_ROOT="$APPDIR" install
67+ find "$APPDIR" -maxdepth 3 -print
6868
69- - name : Add .desktop and icon
69+ - name : Add .desktop file and icon
7070 run : |
71- mkdir -p "${{ env.APPDIR }}/usr/share/applications"
72- mkdir -p "${{ env.APPDIR }}/usr/share/icons/hicolor/256x256/apps"
73- cat > "${{ env.APPDIR }}/usr/share/applications/${{ env.APP_NAME }}.desktop" <<'DESK'[Desktop Entry]
74- Type=Application
75- Name=LikeTaskManager
76- Exec=LikeTaskManager
77- Icon=LikeTaskManager
78- Categories=Utility;
79- Terminal=false
80- DESK
81- if [ -f "$GITHUB_WORKSPACE/icons/myapp-256.png" ]; then
82- cp "$GITHUB_WORKSPACE/icons/myapp-256.png" \
83- "${{ env.APPDIR }}/usr/share/icons/hicolor/256x256/apps/myapp.png"
71+ mkdir -p "$APPDIR/usr/share/applications"
72+ mkdir -p "$APPDIR/usr/share/icons/hicolor/256x256/apps"
73+
74+ cat > "$APPDIR/usr/share/applications/$APP_NAME.desktop" <<DESK
75+ [Desktop Entry]
76+ Type=Application
77+ Name=$APP_NAME
78+ Exec=$APP_NAME
79+ Icon=liketaskmanager
80+ Categories=Utility;
81+ Terminal=false
82+ DESK
83+
84+ # Copy icon if it exists
85+ if [ -f "$GITHUB_WORKSPACE/icons/liketaskmanager-256.png" ]; then
86+ cp "$GITHUB_WORKSPACE/icons/liketaskmanager-256.png" \
87+ " $APPDIR/usr/share/icons/hicolor/256x256/apps/liketaskmanager.png"
8488 fi
8589
86- - name : Download linuxdeploy and plugin
90+ - name : Download linuxdeploy and Qt plugin
8791 run : |
8892 set -e
8993 LDVER=1-alpha-20250213-2
@@ -100,22 +104,21 @@ jobs:
100104 QMAKE : ${{ env.QT_ROOT_DIR }}/bin/qmake
101105 run : |
102106 set -e
103- PROG="${{ env.APP_NAME }}"
104- EXE_PATH="${{ env.APPDIR }}/usr/bin/${PROG}"
107+ EXE_PATH="$APPDIR/usr/bin/$APP_NAME"
105108
106- ./linuxdeploy-x86_64.AppImage --appdir "${{ env. APPDIR }} " \
109+ ./linuxdeploy-x86_64.AppImage --appdir "$APPDIR" \
107110 --executable "$EXE_PATH" \
108- --desktop-file "${{ env. APPDIR }} /usr/share/applications/${{ env. APP_NAME }} .desktop" \
109- --icon-file "${{ env. APPDIR }} /usr/share/icons/hicolor/256x256/apps/myapp .png" \
111+ --desktop-file "$APPDIR/usr/share/applications/$APP_NAME.desktop" \
112+ --icon-file "$APPDIR/usr/share/icons/hicolor/256x256/apps/liketaskmanager .png" \
110113 --plugin qt \
111114 --output appimage
112115
113116 mkdir -p dist
114117 mv ./*.AppImage dist/ || true
115- ls -l dist || true
118+ ls -l dist
116119
117120 - name : Upload AppImage artifact
118121 uses : actions/upload-artifact@v4
119122 with :
120- name : ${{ env. APP_NAME }} -appimage
123+ name : $APP_NAME-appimage
121124 path : dist/*.AppImage
0 commit comments