%global common_description %{expand: A runner for Gitea based on act.} %global dockerd dockerd %global rootless rootless %global dockerd_rootless %{dockerd}-%{rootless} %global dockerd_rootless_service %{dockerd}-%{rootless}-user.service %global act_runner_bin act_runner %global runner_user act-runner %global runner_user_rootless %{runner_user}-%{rootless} %global debug_package %{nil} %global golicenses LICENSE %global godocs examples README.md %global goipath gitea.com/gitea/act_runner Name: gitea-act-runner Version: 0.2.10 Release: %autorelease -b 7 Summary: A runner for Gitea based on act. %global act_runner_service %{name}.service %global act_runner_rootless_service %{name}-%{rootless}.service License: MIT URL: https://gitea.com/gitea/act_runner Source0: https://gitea.com/gitea/act_runner/archive/v%{version}.tar.gz Source1: %{act_runner_service} Source2: %{act_runner_rootless_service} Source3: %{dockerd_rootless_service} Source4: README-%{dockerd}.md Source5: README-%{rootless}-%{dockerd}.md Source6: rootless-act_runner-register.sh BuildRequires: go >= 1.22 BuildRequires: go-rpm-macros BuildRequires: git-core %gometa -L -f %description %{common_description} # act_runner with dockerd package %package %{dockerd} Summary: Enable running gitea actions in docker containers Requires: %{name} docker-ce Conflicts: %{name}-%{dockerd_rootless} BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} %description %{dockerd} %{common_description} Run gitea actions in docker containers %pre %{dockerd} getent group '%{runner_user}' >/dev/null || groupadd -r '%{runner_user}' || : getent passwd '%{runner_user}' >/dev/null || \ useradd -r -m -F -g '%{runner_user}' -d '/home/%{runner_user}' -s '/sbin/nologin' -c 'act_runner user' '%{runner_user}' || : %post %{dockerd} %systemd_post %{act_runner_service} %preun %{dockerd} %systemd_preun %{act_runner_service} userdel -rZf %{runner_user} %postun %{dockerd} userdel -rZf %{runner_user} # act_runner with rootless dockerd package %package %{dockerd_rootless} Summary: Enable running gitea actions in non-root docker containers Requires: %{name} docker-ce slirp4netns fuse-overlayfs iptables docker-ce-rootless-extras shadow-utils Conflicts: %{name}-%{dockerd} BuildRequires: systemd-rpm-macros %description %{dockerd_rootless} %{common_description} Run gitea actions in non-root docker containers %pre %{dockerd_rootless} if [ $1 -eq 1 ]; then getent group '%{runner_user_rootless}' >/dev/null || groupadd -r '%{runner_user_rootless}' || : getent passwd '%{runner_user_rootless}' >/dev/null || \ useradd -r -m -F -g '%{runner_user_rootless}' -d '/home/%{runner_user_rootless}' -s '/sbin/nologin' -c 'Rootless act_runner docker user' '%{runner_user_rootless}' || : fi %post %{dockerd_rootless} %systemd_user_post %{act_runner_rootless_service} %{dockerd_rootless_service} loginctl enable-linger %{runner_user_rootless} if [ $1 -eq 1 ] || [ ! -d /home/%{runner_user_rootless}/act_runner ]; then echo ' INFO Please read README.%{rootless}-%{dockerd}.md to finish the installation' fi %preun %{dockerd_rootless} %systemd_user_preun %{dockerd_rootless_service} %{act_runner_rootless_service} loginctl disable-linger %{runner_user_rootless} %postun %{dockerd_rootless} if [ $1 -eq 0 ]; then userdel -rf %{runner_user_rootless} fi %prep %setup -q -n act_runner %{__cp} %{SOURCE4} %{SOURCE5} . %build go build %{gobuild_baseflags} -o bin/%{act_runner_bin} %{goipath} %install # The binary install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp bin/* %{buildroot}%{_bindir} # dockerd install -m 0755 -vd %{buildroot}%{_unitdir} install -m 0755 -vd %{buildroot}%{_sysconfdir}/%{name} install -D -m 0644 -vp %{SOURCE1} %{buildroot}%{_unitdir}/%{act_runner_service} # dockerd-rootless install -m 0755 -vd %{buildroot}%{_userunitdir} install -m 0755 -vd %{buildroot}%{_datadir}/%{name} install -D -m 0644 -vp %{SOURCE2} %{buildroot}%{_userunitdir}/%{act_runner_rootless_service} install -D -m 0644 -vp %{SOURCE3} %{buildroot}%{_userunitdir}/%{dockerd_rootless_service} install -D -m 0755 -vp %{SOURCE6} %{buildroot}%{_datadir}/%{name}/rootless-act_runner-register.sh %files %license LICENSE %doc README.md %{_bindir}/* %files %{dockerd} %license LICENSE %doc README-%{dockerd}.md %dir %{_sysconfdir}/%{name} %{_unitdir}/* %files %{dockerd_rootless} %license LICENSE %doc README-%{rootless}-%{dockerd}.md %{_userunitdir}/* %{_datadir}/* %changelog %autochangelog