mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-22 13:40:17 +00:00
Refactor Debian build workflow for clarity and efficiency
This commit is contained in:
committed by
GitHub
parent
4787a2901c
commit
6d276ab0c5
67
.github/workflows/debian-build.yml
vendored
67
.github/workflows/debian-build.yml
vendored
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user