Refactor Debian build workflow for clarity and efficiency

This commit is contained in:
deepend-tildeclub
2026-01-10 18:30:48 -07:00
committed by GitHub
parent 4787a2901c
commit 6d276ab0c5

View File

@@ -1,4 +1,4 @@
name: Debian Packages name: Debian Build
on: on:
push: push:
@@ -7,71 +7,54 @@ on:
branches: [master] branches: [master]
jobs: jobs:
debian_packages: debian_build:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
container: container:
image: debian:bookworm image: debian:bookworm
steps: steps:
- name: Install git (required for checkout + submodules) - name: Install base tooling (git + deps)
run: | run: |
set -eux set -eux
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt-get update apt-get update
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
ca-certificates git openssh-client git ca-certificates \
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk2.0-dev \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi mono-devel desktop-file-utils
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
fetch-depth: 0
- name: Install Debian packaging tooling - name: Configure
run: | run: |
set -eux set -eux
export DEBIAN_FRONTEND=noninteractive rm -rf build
apt-get update meson setup build \
apt-get install -y --no-install-recommends \ -Dtext-frontend=true \
devscripts equivs fakeroot dpkg-dev -Dtheme-manager=true \
-Dauto_features=enabled
- name: Enable deb-src + install HexChat build-deps # If configure fails, show the project's actual option names in the log.
- name: Show Meson options (on failure)
if: failure()
run: | run: |
set -eux set -eux
export DEBIAN_FRONTEND=noninteractive meson configure build || true
# Enable source repositories (needed for `apt-get build-dep`) - name: Build
cat >/etc/apt/sources.list.d/deb-src.list <<'EOF'
deb-src http://deb.debian.org/debian bookworm main
deb-src http://deb.debian.org/debian bookworm-updates main
deb-src http://deb.debian.org/debian-security bookworm-security main
EOF
apt-get update
# Pull HexChat's build dependencies from Debian packaging
apt-get build-dep -y --no-install-recommends hexchat
- name: Install Build-Depends from this repo's debian/control
run: | run: |
set -eux set -eux
mk-build-deps -i -r -t "apt-get -y --no-install-recommends" debian/control ninja -C build
- name: Build .deb packages (no signing) - name: Test
run: | run: |
set -eux set -eux
useradd -m builder ninja -C build test
chown -R builder:builder "$GITHUB_WORKSPACE"
su - builder -s /bin/bash -c "cd '$GITHUB_WORKSPACE' && dpkg-buildpackage -us -uc -b"
- name: List built artifacts - name: Install
run: | run: |
set -eux set -eux
ls -lah .. ninja -C build install
- uses: actions/upload-artifact@v4
with:
name: debian-packages
path: |
../*.deb
../*.buildinfo
../*.changes