2 # the revision for images
3 # $ git fetch https://gitlab.com/gitlab-org/gitlab-ci-multi-runner refs/tags/v1.6.0
4 # $ git rev-list -n 1 --abbrev-commit FETCH_HEAD
5 #define revision 76fdacd
6 # No changes to image, so don't refetch it
8 Summary: The official GitLab CI runner written in Go
9 Name: gitlab-ci-multi-runner
13 Group: Development/Building
14 Source0: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/repository/archive.tar.gz?ref=v%{version}&/%{name}-%{version}.tar.gz
15 # Source0-md5: aed7c89fb2d0fa9c61c97d0206cc048b
17 Source4: %{name}.sysconfig
18 Source5: %{name}.service
19 Patch0: nodim_gz.patch
20 Patch1: branch-preserver.patch
21 URL: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner
22 BuildRequires: git-core
23 BuildRequires: golang >= 1.6
24 BuildRequires: rpmbuild(macros) >= 1.647
25 Requires(post,preun): /sbin/chkconfig
26 Requires(post,preun,postun): systemd-units >= 38
27 Requires(postun): /usr/sbin/groupdel
28 Requires(postun): /usr/sbin/userdel
29 Requires(pre): /bin/id
30 Requires(pre): /usr/bin/getgid
31 Requires(pre): /usr/sbin/groupadd
32 Requires(pre): /usr/sbin/useradd
34 Requires: ca-certificates
37 Requires: systemd-units >= 0.38
39 Suggests: docker >= 1.8
40 Suggests: gitlab-ci-multi-runner-image-arm
41 Suggests: gitlab-ci-multi-runner-image-x86_64
42 Provides: group(gitlab-runner)
43 Provides: user(gitlab-runner)
44 ExclusiveArch: %{ix86} %{x8664} %{arm}
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 %define _enable_debug_packages 0
49 %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**};
50 %define import_path gitlab.com/gitlab-org/gitlab-ci-multi-runner
53 This is the official GitLab Runner written in Go. It runs tests and
54 sends the results to GitLab. GitLab CI is the open-source continuous
55 integration service included with GitLab that coordinates the testing.
61 mv gitlab-ci-multi-runner-*/*.md .
64 install -d src/$(dirname %{import_path})
65 mv gitlab-ci-multi-runner-* src/%{import_path}
71 # avoid docker being used even if executable found
82 export PATH=$(pwd):$PATH
84 %{__make} version | tee version.txt
86 CN=gitlab.com/gitlab-org/gitlab-ci-multi-runner/common
87 LDFLAGS="-X $CN.NAME=gitlab-ci-multi-runner -X $CN.VERSION=%{version} -X $CN.REVISION=%{revision}"
90 # verify that version matches
91 ./gitlab-ci-multi-runner -v > v
92 v=$(awk '$1 == "Version:" {print $2}' v)
93 test "$v" = "%{version}"
96 rm -rf $RPM_BUILD_ROOT
97 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/etc/{rc.d/init.d,sysconfig},%{systemdunitdir},/var/lib/gitlab-runner/.gitlab-runner}
99 install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner
100 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
101 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
102 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}
104 # backward compat name for previous pld packaging
105 ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner
108 rm -rf $RPM_BUILD_ROOT
111 %groupadd -g 330 gitlab-runner
112 %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner
115 if [ "$1" = "0" ]; then
116 %userremove gitlab-runner
117 %groupremove gitlab-runner
122 /sbin/chkconfig --add %{name}
123 %service %{name} restart
124 %systemd_post %{name}.service
127 if [ "$1" = "0" ]; then
128 %service -q %{name} stop
129 /sbin/chkconfig --del %{name}
131 %systemd_preun %{name}.service
134 %defattr(644,root,root,755)
135 %doc README.md CHANGELOG.md
136 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/gitlab-ci-multi-runner
137 %attr(754,root,root) /etc/rc.d/init.d/gitlab-ci-multi-runner
138 %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner
139 %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner
140 %attr(755,root,root) %{_bindir}/gitlab-runner
141 %{systemdunitdir}/gitlab-ci-multi-runner.service
142 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner
143 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner