1 # the revision for images
2 %define revision %{version}
3 Summary: The official GitLab CI runner written in Go
4 Name: gitlab-ci-multi-runner
8 Group: Development/Building
9 Source0: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/repository/archive.tar.gz?ref=v%{version}&/%{name}-%{version}.tar.gz
10 # Source0-md5: 871a304e5e601f3505c9b530dabf1511
11 Source1: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-x86_64.tar.xz
12 # Source1-md5: 0befac63ed2b43e614210a72c52bb3dc
13 Source2: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-arm.tar.xz
14 # Source2-md5: 009028115b5d9dbe11013463a056033e
15 URL: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner
16 BuildRequires: git-core
17 BuildRequires: go-bindata >= 3.0.7-1.a0ff2567
18 BuildRequires: golang >= 1.4
19 BuildRequires: rpmbuild(macros) >= 1.202
20 Requires(postun): /usr/sbin/groupdel
21 Requires(postun): /usr/sbin/userdel
22 Requires(pre): /bin/id
23 Requires(pre): /usr/bin/getgid
24 Requires(pre): /usr/sbin/groupadd
25 Requires(pre): /usr/sbin/useradd
26 Requires: ca-certificates
30 Suggests: docker >= 1.5.0
31 Provides: group(gitlab-runner)
32 Provides: user(gitlab-runner)
33 ExclusiveArch: %{ix86} %{x8664} %{arm}
34 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 %define _enable_debug_packages 0
38 %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**};
39 %define import_path gitlab.com/gitlab-org/gitlab-ci-multi-runner
42 This is the official GitLab Runner written in Go. It runs tests and
43 sends the results to GitLab. GitLab CI is the open-source continuous
44 integration service included with GitLab that coordinates the testing.
50 mv gitlab-ci-multi-runner-*/*.md .
53 install -d src/$(dirname %{import_path})
54 mv gitlab-ci-multi-runner-* src/%{import_path}
58 ln -s %{SOURCE1} out/docker
59 ln -s %{SOURCE2} out/docker
60 # touch, otherwise make rules would download it nevertheless
61 touch out/docker/prebuilt-*.tar.xz
63 # avoid docker being used even if executable found
72 # check that the revision is correct
73 #tar xvf out/docker/prebuilt.tar.gz repositories
74 #revision=$(sed -rne 's/.*"gitlab-runner-build":\{"([^"]+)":.*/\1/p' repositories)
75 #test "$revision" = %{revision}
79 export PATH=$(pwd):$PATH
81 # build docker bindata. if you forget this, you get such error:
82 # executors/docker/executor_docker.go:180: undefined: Asset
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},/var/lib/gitlab-runner/.gitlab-runner}
99 install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner
101 # backward compat name for previous pld packaging
102 ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner
105 rm -rf $RPM_BUILD_ROOT
108 %groupadd -g 330 gitlab-runner
109 %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner
112 if [ "$1" = "0" ]; then
113 %userremove gitlab-runner
114 %groupremove gitlab-runner
118 %defattr(644,root,root,755)
119 %doc README.md CHANGELOG.md
120 %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner
121 %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner
122 %attr(755,root,root) %{_bindir}/gitlab-runner
123 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner
124 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner