From 7cf2553b992a80187a1b72ee8856ef15d3463162 Mon Sep 17 00:00:00 2001 From: polyfloyd Date: Thu, 8 May 2025 14:57:34 +0200 Subject: [PATCH] Set up CI builds --- .forgejo/workflows/build.yaml | 52 +++++++++++++++++++++++++++++++++++ Makefile | 2 +- support/postinst | 14 ++++++++++ support/systemd.service | 15 ++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 .forgejo/workflows/build.yaml create mode 100755 support/postinst create mode 100644 support/systemd.service diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..498830d --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,52 @@ +name: Build + +on: + push: + branches: + - main + +jobs: + + build: + runs-on: docker + container: + image: debian:bookworm + + steps: + - run: |- + apt update + apt install -y \ + nodejs git curl make gcc pkg-config \ + libglib2.0-dev libdbi-dev libtalloc-dev libtevent-dev nettle-dev + - uses: actions/checkout@v4 + + - run: make + + - name: Build Debian package + run: |- + mkdir -p deb/DEBIAN + cat <, Wilco Baan Hofman + Description: SIA-HS daemon + Depends: libglib2.0-0, libdbi1, libtalloc2, libnettle8, libtevent0 + EOF + cp -v support/postinst deb/DEBIAN/postinst + + install -D -m 0755 build/siahsd deb/usr/bin/siahsd + install -D support/systemd.service deb/lib/systemd/system/siahsd.service + install -D siahsd.conf deb/etc/siahsd.conf + + dpkg-deb --build deb siahsd.deb + + - name: Deploy Debian package + run: |- + curl \ + --fail \ + --user ${{ secrets.PKG_RELEASE_CREDENTIALS }} \ + --upload-file siahsd.deb \ + $GITHUB_SERVER_URL/api/packages/$GITHUB_REPOSITORY_OWNER/debian/pool/stable/main/upload diff --git a/Makefile b/Makefile index f316bd9..48f7e52 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ $(BUILD)/%.o: $(SRCDIR)/%.c $(BUILD)/siahsd: $(patsubst %, $(BUILD)/%.o, siahsd database config status sia siahs jsonbot hook_script) @echo [LD] $@ - @$(CC) $(LDFLAGS) -o $@ $^ + @$(CC) -o $@ $^ $(LDFLAGS) .PHONY: all clean diff --git a/support/postinst b/support/postinst new file mode 100755 index 0000000..7ab5cc8 --- /dev/null +++ b/support/postinst @@ -0,0 +1,14 @@ +#!/bin/sh + +if ! id -u siahsd >/dev/null 2>&1; then + useradd \ + --no-user-group \ + --system \ + --create-home \ + --home-dir /var/lib/siahsd \ + --shell /usr/sbin/nologin siahsd \ +fi + +systemctl daemon-reload +systemctl restart siahsd.service +systemctl enable siahsd.service diff --git a/support/systemd.service b/support/systemd.service new file mode 100644 index 0000000..00a08b7 --- /dev/null +++ b/support/systemd.service @@ -0,0 +1,15 @@ +[Unit] +Description=SIA-HS daemon +After=network.target + +[Service] +Type=forking +PIDFile=/var/lib/siahsd/siahsd.pid +Restart=always +RestartSec=10s +ExecStartPre=-/bin/rm /var/lib/siahsd/siahsd.pid +ExecStart=/usr/bin/siahsd +User=siahsd + +[Install] +WantedBy=multi-user.target