feat: add actrunners
This commit is contained in:
4
Makefile
4
Makefile
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user