From 80210206bf2dbfbe30c00cda42be87dbb16602ad Mon Sep 17 00:00:00 2001 From: samuel Date: Thu, 26 Feb 2026 14:51:52 +0100 Subject: [PATCH] feat: add actrunners --- Makefile | 4 ++- files/gitea/app.ini | 2 +- files/systemd/gitea.service | 2 +- netoik-git.spec | 49 +++++++++++++++++++++++++++++++++++-- 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index c01d7b0..a7ca203 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,10 @@ BUILD_ARCH = noarch RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}') RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}') RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}') +RPM_SHAREDSTATEDIR = $(shell rpm --eval '%{_sharedstatefdir}') RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}') RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}') + RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(NAME)-$(VERSION).tar.gz RPM_BUILD_PATH = $(RPM_RPMDIR)/$(BUILD_ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm @@ -30,7 +32,7 @@ build_arch: .PHONY: install install: - install --mode=755 --directory $(DESTDIR)$(RPM_SYSCONFDIR)/gitea $(DESTDIR)$(RPM_UNITDIR) $(DESTDIR)/actrunners + install --mode=755 --directory $(DESTDIR)$(RPM_SYSCONFDIR)/gitea $(DESTDIR)$(RPM_SHAREDSTATEDIR)/actrunners install --mode=644 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/gitea files/gitea/app.ini install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR)/ files/systemd/gitea.service files/systemd/actrunner@.service diff --git a/files/gitea/app.ini b/files/gitea/app.ini index 002ffb3..13bef87 100644 --- a/files/gitea/app.ini +++ b/files/gitea/app.ini @@ -30,4 +30,4 @@ DISABLE_REGISTRATION = true [session] PROVIDER = redis -PROVIDER_CONFIG = /run/redis/redis.sock +PROVIDER_CONFIG = /run/valkey/valkey.sock diff --git a/files/systemd/gitea.service b/files/systemd/gitea.service index e026c54..a509058 100644 --- a/files/systemd/gitea.service +++ b/files/systemd/gitea.service @@ -1,6 +1,6 @@ [Unit] Description=Gitea (Git with a cup of tea) -After=network.target postgresql.service +After=network.target postgresql.service valkey.service [Service] RestartSec=2s diff --git a/netoik-git.spec b/netoik-git.spec index fc17e8e..64b826c 100644 --- a/netoik-git.spec +++ b/netoik-git.spec @@ -10,7 +10,7 @@ URL: https://git.netoik.io/samuel/%(make name) Source0: %{name}-%{version}.tar.gz Buildarch: %(make build_arch) BuildRequires: make -Requires: netoik-db git +Requires: netoik-db netoik-cache git %description Install the Git UI server called Gitea. @@ -22,6 +22,51 @@ Install the Git UI server called Gitea. %make_install %post +# Download gitea bin and verify gpg signature +wget --output-document %{_tmppath}/gitea "$GITEA_BIN_URL" +wget --output-document %{_tmppath}/gitea.asc "$GITEA_ASC_URL" +gpg --keyserver "$GITEA_GPG_KEYSERVER" --recv "$GITEA_GPG_RECV" +gpg --verify %{_tmppath}/gitea.asc %{_tmppath}/gitea +mv %{_tmppath}/gitea %{_sbindir} +chmod 755 %{_sbindir}/gitea +rm %{_tmppath}/gitea.asc + +# Create gitea user +useradd --system --create-home --bade-dir %{_sharedstatedir} gitea +runuser --user gitea -- mkdir --parents %{_sharedstatedir}/gitea/{data,custom} + +# Generate internal token and secret key +INTERNAL_TOKEN="$(gitea generate secret INTERNAL_TOKEN)" +SECRET_KEY="$(gitea generate secret SECRET_KEY)" +envsubst < %{_sysconfdir}/gitea/app.ini > %{_sysconfdir}/gitea/app.ini.new +mv %{_sysconfdir}/gitea/app.ini.new %{_sysconfdir}/gitea/app.ini +chmod 600 %{_sysconfdir}/gitea/app.ini + +# Create actrunners +for i in $(seq 1 $ACT_RUNNERS); do + if ! id "actrunner$i"; then + useradd --system --create-home --base-dir %{_sharedstatedir}/actrunners "actrunner$i" + systemctl daemon-reload + systemctl reenable "actrunner@$i" + systemctl restart "actrunner@$i" + fi +done + +# Start gitea service +systemctl daemon-reload +systemctl reenable gitea.service +systemctl restart gitea.service + +%preun +# Backup gitea data in case of problem +gitea dump --config %{_sysconfdir}/gitea/app.ini --tempdir %{_tmppath} + +%postun +# Remove gitea user after uninstall +if [ %1 == 0 ]; then + systemctl stop gitea.service + userdel --force --remove gitea +fi %files %dir %attr(755, root, root) %{_sysconfdir}/gitea @@ -30,7 +75,7 @@ Install the Git UI server called Gitea. %attr(644, root, root) %{_unitdir}/gitea.service %attr(644, root, root) %{_unitdir}/actrunner@.service -%dir %attr(755, root, root) /opt/actrunners +%dir %attr(755, root, root) %{_shared_statedir}/actrunners %changelog %autochangelog