feat: add actrunners

This commit is contained in:
2026-02-26 14:51:52 +01:00
parent 89af50a63f
commit 80210206bf
4 changed files with 52 additions and 5 deletions

View File

@@ -7,8 +7,10 @@ BUILD_ARCH = noarch
RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}') RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}')
RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}') RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}')
RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}') RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}')
RPM_SHAREDSTATEDIR = $(shell rpm --eval '%{_sharedstatefdir}')
RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}') RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}')
RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}') RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}')
RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(NAME)-$(VERSION).tar.gz RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(NAME)-$(VERSION).tar.gz
RPM_BUILD_PATH = $(RPM_RPMDIR)/$(BUILD_ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm RPM_BUILD_PATH = $(RPM_RPMDIR)/$(BUILD_ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm
@@ -30,7 +32,7 @@ build_arch:
.PHONY: install .PHONY: install
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_SYSCONFDIR)/gitea files/gitea/app.ini
install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR)/ files/systemd/gitea.service files/systemd/actrunner@.service install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR)/ files/systemd/gitea.service files/systemd/actrunner@.service

View File

@@ -30,4 +30,4 @@ DISABLE_REGISTRATION = true
[session] [session]
PROVIDER = redis PROVIDER = redis
PROVIDER_CONFIG = /run/redis/redis.sock PROVIDER_CONFIG = /run/valkey/valkey.sock

View File

@@ -1,6 +1,6 @@
[Unit] [Unit]
Description=Gitea (Git with a cup of tea) Description=Gitea (Git with a cup of tea)
After=network.target postgresql.service After=network.target postgresql.service valkey.service
[Service] [Service]
RestartSec=2s RestartSec=2s

View File

@@ -10,7 +10,7 @@ URL: https://git.netoik.io/samuel/%(make name)
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
Buildarch: %(make build_arch) Buildarch: %(make build_arch)
BuildRequires: make BuildRequires: make
Requires: netoik-db git Requires: netoik-db netoik-cache git
%description %description
Install the Git UI server called Gitea. Install the Git UI server called Gitea.
@@ -22,6 +22,51 @@ Install the Git UI server called Gitea.
%make_install %make_install
%post %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 %files
%dir %attr(755, root, root) %{_sysconfdir}/gitea %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}/gitea.service
%attr(644, root, root) %{_unitdir}/actrunner@.service %attr(644, root, root) %{_unitdir}/actrunner@.service
%dir %attr(755, root, root) /opt/actrunners %dir %attr(755, root, root) %{_shared_statedir}/actrunners
%changelog %changelog
%autochangelog %autochangelog