Skip to content

Commit f95c6fc

Browse files
committed
ci(debian): add Debian 13 (bookworm) container jobs to produce native Debian artifacts in build and release
1 parent dcafb9d commit f95c6fc

2 files changed

Lines changed: 128 additions & 2 deletions

File tree

.github/workflows/build.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,66 @@ jobs:
117117
with:
118118
name: ${{ runner.os }}-${{ runner.arch }}-binaries
119119
path: artifacts/*
120+
121+
build_debian_bookworm:
122+
name: Build Debian 13 (bookworm) binaries
123+
runs-on: ubuntu-latest
124+
container:
125+
image: debian:bookworm
126+
steps:
127+
- name: Checkout
128+
uses: actions/checkout@v4
129+
130+
- name: Install system dependencies (Debian)
131+
shell: bash
132+
run: |
133+
set -euo pipefail
134+
apt-get update
135+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
136+
python3 python3-pip python3-venv ca-certificates git \
137+
build-essential patchelf libgl1 libglib2.0-0 \
138+
qt6-base-dev qt6-base-dev-tools || true
139+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
140+
qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake || true
141+
update-ca-certificates || true
142+
143+
- name: Check qmake (Debian)
144+
shell: bash
145+
run: |
146+
set -euo pipefail
147+
which qmake6 || true
148+
which qmake || true
149+
qmake6 --version || true
150+
qmake --version || true
151+
if command -v qmake6 >/dev/null 2>&1; then echo "QMAKE=$(which qmake6)" >> $GITHUB_ENV;
152+
elif command -v qmake >/dev/null 2>&1; then echo "QMAKE=$(which qmake)" >> $GITHUB_ENV; fi
153+
154+
- name: Install Python packages (Debian)
155+
shell: bash
156+
run: |
157+
python3 -m pip install --upgrade pip
158+
if [ -f requirements.txt ]; then python3 -m pip install -r requirements.txt; else python3 -m pip install PyQt6; fi
159+
python3 -m pip install pyinstaller requests ffmpeg-python
160+
161+
- name: Build PyQt6 app (Debian)
162+
shell: bash
163+
run: |
164+
pyinstaller --name WINFF-GUI-PyQt6 --noconfirm --onefile --windowed GUI_pyqt6_WINFF.py
165+
166+
- name: Build Tkinter app (Debian)
167+
shell: bash
168+
run: |
169+
pyinstaller --name WINFF-GUI-Tkinter --noconfirm --onefile --windowed GUI_tkinter_WINFF.py
170+
171+
- name: Package artifacts (Debian)
172+
shell: bash
173+
run: |
174+
mkdir -p artifacts
175+
cp dist/WINFF-GUI-PyQt6 artifacts/WINFF-GUI-PyQt6-debian-x64
176+
cp dist/WINFF-GUI-Tkinter artifacts/WINFF-GUI-Tkinter-debian-x64
177+
178+
- name: Upload artifacts (Debian)
179+
uses: actions/upload-artifact@v4
180+
with:
181+
name: Debian-binaries
182+
path: artifacts/*

.github/workflows/release.yml

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,78 @@ jobs:
102102
name: ${{ runner.os }}-${{ runner.arch }}-release-artifacts
103103
path: artifacts/*
104104

105+
build_debian_bookworm:
106+
name: Build Debian 13 (bookworm) release artifacts
107+
runs-on: ubuntu-latest
108+
container:
109+
image: debian:bookworm
110+
steps:
111+
- name: Checkout
112+
uses: actions/checkout@v4
113+
114+
- name: Install system dependencies (Debian)
115+
shell: bash
116+
run: |
117+
set -euo pipefail
118+
apt-get update
119+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
120+
python3 python3-pip python3-venv ca-certificates git \
121+
build-essential patchelf libgl1 libglib2.0-0 \
122+
qt6-base-dev qt6-base-dev-tools || true
123+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
124+
qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake || true
125+
update-ca-certificates || true
126+
127+
- name: Check qmake (Debian)
128+
shell: bash
129+
run: |
130+
set -euo pipefail
131+
which qmake6 || true
132+
which qmake || true
133+
qmake6 --version || true
134+
qmake --version || true
135+
if command -v qmake6 >/dev/null 2>&1; then echo "QMAKE=$(which qmake6)" >> $GITHUB_ENV;
136+
elif command -v qmake >/dev/null 2>&1; then echo "QMAKE=$(which qmake)" >> $GITHUB_ENV; fi
137+
138+
- name: Install Python packages (Debian)
139+
shell: bash
140+
run: |
141+
python3 -m pip install --upgrade pip
142+
if [ -f requirements.txt ]; then python3 -m pip install -r requirements.txt; else python3 -m pip install PyQt6; fi
143+
python3 -m pip install pyinstaller requests ffmpeg-python
144+
145+
- name: Build PyQt6 app (Debian)
146+
shell: bash
147+
run: |
148+
pyinstaller --name WINFF-GUI-PyQt6 --noconfirm --onefile --windowed GUI_pyqt6_WINFF.py
149+
150+
- name: Build Tkinter app (Debian)
151+
shell: bash
152+
run: |
153+
pyinstaller --name WINFF-GUI-Tkinter --noconfirm --onefile --windowed GUI_tkinter_WINFF.py
154+
155+
- name: Package artifacts (Debian)
156+
shell: bash
157+
run: |
158+
mkdir -p artifacts
159+
cp dist/WINFF-GUI-PyQt6 artifacts/WINFF-GUI-PyQt6-debian-x64
160+
cp dist/WINFF-GUI-Tkinter artifacts/WINFF-GUI-Tkinter-debian-x64
161+
162+
- name: Upload artifacts (Debian)
163+
uses: actions/upload-artifact@v4
164+
with:
165+
name: Debian-release-artifacts
166+
path: artifacts/*
167+
105168
publish:
106169
name: Publish GitHub Release
107170
runs-on: ubuntu-latest
108-
needs: build
171+
needs: [build, build_debian_bookworm]
109172
steps:
110173
- name: Download all artifacts
111174
uses: actions/download-artifact@v4
112175
with:
113-
pattern: "*-release-artifacts"
176+
pattern: "*-release-artifacts|Debian-release-artifacts"
114177
merge-multiple: true
115178
path: release-assets
116179

0 commit comments

Comments
 (0)