%global debug_package %{nil} %global build_ldflags %{nil} %define _build_id_links none %define service_user runner %define service_group runner Name: forgejo-runner Version: 12.0.1 Release: 1 Summary: Daemon that connects to a Forgejo instance and runs CI jobs License: GPL-3.0-or-later URL: https://code.forgejo.org/forgejo/runner Source0: %{url}/archive/v%{version}.tar.gz Source1: %{name}.service Source2: %{name}.sysusers BuildRequires: golang-bin >= 1.24 BuildRequires: golang-src >= 1.24 BuildRequires: perl BuildRequires: pkgconfig(bash-completion) BuildRequires: fish BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} %description A daemon that connects to a Forgejo instance and runs jobs for continous integration. The installation and usage instructions are part of the Forgejo documentation. https://forgejo.org/docs/next/admin/actions/ %package -n %{name}-bash-completion Summary: Bash Completion for %{name} Requires: %{name} = %{version} Requires: bash-completion Supplements: (%{name} and bash-completion) BuildArch: noarch %description -n %{name}-bash-completion Bash command line completion support for %{name}. %package -n %{name}-fish-completion Summary: Fish Completion for %{name} Requires: %{name} = %{version} Supplements: (%{name} and fish) BuildArch: noarch %description -n %{name}-fish-completion Fish command line completion support for %{name}. %prep %setup -q -n runner %build go build \ -buildmode=pie \ -ldflags="-X runner.forgejo.org/internal/pkg/ver.version=v%{version}" \ -o bin/%{name} bin/%{name} generate-config > config.yaml perl -p -i -e 's|file: \.runner|file: /etc/forgejo-runner/runners|g' config.yaml %install install -D -m 0755 bin/%{name} %{buildroot}/%{_bindir}/%{name} install -D -m 0750 -d %{buildroot}%{_sysconfdir}/%{name} install -m 0640 config.yaml %{buildroot}%{_sysconfdir}/%{name}/config.yaml install -m 0640 /dev/null %{buildroot}%{_sysconfdir}/%{name}/runners install -D -m 0750 -d %{buildroot}%{_localstatedir}/lib/%{name} install -D -m 0644 %{S:1} %{buildroot}/%{_unitdir}/%{name}.service install -m644 -p -D %{S:2} %{buildroot}%{_sysusersdir}/%{name}.conf # Create the bash completion file mkdir -p %{buildroot}%{_datarootdir}/bash-completion/completions/ %{buildroot}/%{_bindir}/%{name} completion bash > %{buildroot}%{_datarootdir}/bash-completion/completions/%{name} # Create the fish completion file mkdir -p %{buildroot}%{_datarootdir}/fish/vendor_completions.d/ %{buildroot}/%{_bindir}/%{name} completion fish > %{buildroot}%{_datarootdir}/fish/vendor_completions.d/%{name}.fish %pre %sysusers_create_compat %{S:2} %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service %files %{_bindir}/%{name} %{_unitdir}/%{name}.service %{_sysusersdir}/%{name}.conf %attr(0750,%{service_user},%{service_group}) %dir %{_sysconfdir}/%{name} %attr(0640,%{service_user},%{service_group}) %config(noreplace,missingok) %{_sysconfdir}/%{name}/config.yaml %attr(0640,%{service_user},%{service_group}) %{_sysconfdir}/%{name}/runners %attr(0750,%{service_user},%{service_group}) %dir %{_localstatedir}/lib/%{name} %files -n %{name}-bash-completion %{_datadir}/bash-completion/completions/%{name} %files -n %{name}-fish-completion %{_datadir}/fish/vendor_completions.d/%{name}.fish %changelog %autochangelog