]>
Commit | Line | Data |
---|---|---|
3e1b3fba | 1 | # the revision for images |
d16d4f3d | 2 | %define revision %{version} |
c5c6476d ER |
3 | Summary: The official GitLab CI runner written in Go |
4 | Name: gitlab-ci-multi-runner | |
52f287d2 | 5 | Version: 1.5.2 |
a946f059 | 6 | Release: 1 |
b306b97b | 7 | License: MIT |
c5c6476d ER |
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 | |
52f287d2 | 10 | # Source0-md5: 3daf43173c38421fb9243fc20a7adf70 |
7ad949a0 | 11 | Source1: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-x86_64.tar.xz |
52f287d2 | 12 | # Source1-md5: 0d89c7578a0b5d22a4ae85dcb7d5b4f5 |
7ad949a0 | 13 | Source2: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-arm.tar.xz |
52f287d2 | 14 | # Source2-md5: c0533c581624dcb33095f08f06e6a00b |
c5c6476d ER |
15 | URL: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner |
16 | BuildRequires: git-core | |
4ffe1735 | 17 | BuildRequires: go-bindata >= 3.0.7-1.a0ff2567 |
f81cac35 | 18 | BuildRequires: golang >= 1.4 |
fbac930f ER |
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 | |
c5c6476d ER |
26 | Requires: ca-certificates |
27 | Requires: curl | |
28 | Requires: git-core | |
29 | Requires: tar | |
a56eb7cc | 30 | Suggests: docker >= 1.5.0 |
fbac930f ER |
31 | Provides: group(gitlab-runner) |
32 | Provides: user(gitlab-runner) | |
4ffe1735 | 33 | ExclusiveArch: %{ix86} %{x8664} %{arm} |
c5c6476d ER |
34 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
35 | ||
4ffe1735 ER |
36 | # go stuff |
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 %{?**}; | |
7ad949a0 | 39 | %define import_path gitlab.com/gitlab-org/gitlab-ci-multi-runner |
4ffe1735 | 40 | |
c5c6476d ER |
41 | %description |
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. | |
45 | ||
46 | %prep | |
47 | %setup -qc | |
c5c6476d | 48 | |
7ad949a0 ER |
49 | # for doc |
50 | mv gitlab-ci-multi-runner-*/*.md . | |
51 | ||
52 | # don't you love go? | |
53 | install -d src/$(dirname %{import_path}) | |
54 | mv gitlab-ci-multi-runner-* src/%{import_path} | |
55 | cd src/%{import_path} | |
bf2084d5 | 56 | |
4ffe1735 | 57 | mkdir -p out/docker |
d16d4f3d ER |
58 | ln -s %{SOURCE1} out/docker |
59 | ln -s %{SOURCE2} out/docker | |
6ada5ccc | 60 | # touch, otherwise make rules would download it nevertheless |
7ad949a0 | 61 | touch out/docker/prebuilt-*.tar.xz |
4ffe1735 | 62 | |
a0a05733 ER |
63 | # avoid docker being used even if executable found |
64 | cat <<'EOF' > docker | |
65 | #!/bin/sh | |
66 | echo >&2 "No docker" | |
67 | exit 1 | |
68 | EOF | |
69 | chmod a+rx docker | |
70 | ||
c5c6476d | 71 | %build |
611fb108 | 72 | # check that the revision is correct |
d16d4f3d ER |
73 | #tar xvf out/docker/prebuilt.tar.gz repositories |
74 | #revision=$(sed -rne 's/.*"gitlab-runner-build":\{"([^"]+)":.*/\1/p' repositories) | |
75 | #test "$revision" = %{revision} | |
611fb108 | 76 | |
7ad949a0 ER |
77 | export GOPATH=$(pwd) |
78 | cd src/%{import_path} | |
a0a05733 | 79 | export PATH=$(pwd):$PATH |
bf2084d5 | 80 | |
7ad949a0 ER |
81 | # build docker bindata. if you forget this, you get such error: |
82 | # executors/docker/executor_docker.go:180: undefined: Asset | |
4ffe1735 | 83 | %{__make} docker |
69a70248 | 84 | %{__make} version | tee version.txt |
d16d4f3d | 85 | |
7ad949a0 ER |
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}" | |
4ffe1735 | 88 | %gobuild |
c5c6476d | 89 | |
f81cac35 | 90 | # verify that version matches |
7ad949a0 | 91 | ./gitlab-ci-multi-runner -v > v |
f81cac35 ER |
92 | v=$(awk '$1 == "Version:" {print $2}' v) |
93 | test "$v" = "%{version}" | |
69a70248 | 94 | |
c5c6476d ER |
95 | %install |
96 | rm -rf $RPM_BUILD_ROOT | |
dd56a935 | 97 | install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/var/lib/gitlab-runner/.gitlab-runner} |
770719bc | 98 | |
7ad949a0 | 99 | install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner |
fbac930f | 100 | |
c2bf33c4 ER |
101 | # backward compat name for previous pld packaging |
102 | ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner | |
c5c6476d ER |
103 | |
104 | %clean | |
105 | rm -rf $RPM_BUILD_ROOT | |
106 | ||
fbac930f ER |
107 | %pre |
108 | %groupadd -g 330 gitlab-runner | |
109 | %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner | |
110 | ||
111 | %postun | |
112 | if [ "$1" = "0" ]; then | |
113 | %userremove gitlab-runner | |
114 | %groupremove gitlab-runner | |
115 | fi | |
116 | ||
c5c6476d ER |
117 | %files |
118 | %defattr(644,root,root,755) | |
119 | %doc README.md CHANGELOG.md | |
770719bc | 120 | %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner |
4ffe1735 | 121 | %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner |
c2bf33c4 | 122 | %attr(755,root,root) %{_bindir}/gitlab-runner |
fbac930f | 123 | %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner |
dd56a935 | 124 | %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner |