3 %bcond_with prebuilt # use prebuilt binary
5 Summary: The official GitLab CI runner written in Go
10 Group: Development/Building
11 Source0: https://gitlab.com/gitlab-org/gitlab-runner/-/archive/v%{version}/gitlab-runner-v%{version}.tar.bz2
12 # Source0-md5: 5d92b8ca3fe5fdfeeb3bc2900c4aecd6
14 Source1: https://gitlab-runner-downloads.s3.amazonaws.com/v%{version}/binaries/gitlab-runner-linux-amd64
15 # Source1-md5: 2fc56f01f932a14a807e37195d08bcf2
18 Source4: %{name}.sysconfig
19 Source5: %{name}.service
20 Patch0: nodim_gz.patch
21 Patch1: branch-preserver.patch
22 URL: https://gitlab.com/gitlab-org/gitlab-runner
23 BuildRequires: git-core
24 BuildRequires: golang >= 1.9.4
25 BuildRequires: rpmbuild(macros) >= 1.647
26 Requires(post,preun): /sbin/chkconfig
27 Requires(post,preun,postun): systemd-units >= 38
28 Requires(postun): /usr/sbin/groupdel
29 Requires(postun): /usr/sbin/userdel
30 Requires(pre): /bin/id
31 Requires(pre): /usr/bin/getgid
32 Requires(pre): /usr/sbin/groupadd
33 Requires(pre): /usr/sbin/useradd
35 Requires: ca-certificates
38 Requires: systemd-units >= 0.38
40 Suggests: docker >= 1.8
41 Suggests: gitlab-runner-image-arm
42 Suggests: gitlab-runner-image-x86_64
43 Provides: group(gitlab-runner)
44 Provides: user(gitlab-runner)
45 Obsoletes: gitlab-ci-multi-runner < 10.0
46 ExclusiveArch: %{ix86} %{x8664} %{arm}
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 %define _enable_debug_packages 0
51 %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v %{?debug:-x} %{?**};
52 %define import_path gitlab.com/gitlab-org/gitlab-runner
55 This is the official GitLab Runner written in Go. It runs tests and
56 sends the results to GitLab. GitLab CI is the open-source continuous
57 integration service included with GitLab that coordinates the testing.
63 mv gitlab-runner-*/*.md .
66 install -d src/$(dirname %{import_path})
67 mv gitlab-runner-* src/%{import_path}
73 # avoid docker being used even if executable found
84 export PATH=$(pwd):$PATH
86 %if %{without prebuilt}
87 %{__make} version | tee version.txt
89 CN=gitlab.com/gitlab-org/gitlab-runner/common
90 DT=$(date -u +%%Y-%%m-%%dT%%H:%%M:%%S%%:z)
91 LDFLAGS="-X $CN.VERSION=%{version} -X $CN.REVISION=v%{version} -X $CN.BRANCH=v%{version} -X $CN.BUILT=$DT"
94 install -p %{SOURCE1} gitlab-runner
97 # verify that version matches
98 ./gitlab-runner -v > v
99 v=$(awk '$1 == "Version:" {print $2}' v)
100 test "$v" = "%{version}"
103 rm -rf $RPM_BUILD_ROOT
104 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/etc/{rc.d/init.d,sysconfig},%{systemdunitdir},/var/lib/gitlab-runner/.gitlab-runner}
106 install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner
107 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
108 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
109 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}
112 rm -rf $RPM_BUILD_ROOT
115 %groupadd -g 330 gitlab-runner
116 %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner
119 if [ "$1" = "0" ]; then
120 %userremove gitlab-runner
121 %groupremove gitlab-runner
126 /sbin/chkconfig --add %{name}
127 %service %{name} restart
128 %systemd_post %{name}.service
131 if [ "$1" = "0" ]; then
132 %service -q %{name} stop
133 /sbin/chkconfig --del %{name}
135 %systemd_preun %{name}.service
138 %defattr(644,root,root,755)
139 %doc README.md CHANGELOG.md
140 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/gitlab-runner
141 %attr(754,root,root) /etc/rc.d/init.d/gitlab-runner
142 %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner
143 %attr(755,root,root) %{_bindir}/gitlab-runner
144 %{systemdunitdir}/gitlab-runner.service
145 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner
146 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner