]>
Commit | Line | Data |
---|---|---|
72cef35a ER |
1 | # |
2 | # Conditional build: | |
3 | %bcond_with bindata # embed docker images to binary (upstream compatible) | |
4 | ||
3e1b3fba | 5 | # the revision for images |
ec0a53a6 ER |
6 | # $ git fetch https://gitlab.com/gitlab-org/gitlab-ci-multi-runner refs/tags/v1.6.0 |
7 | # $ git rev-list -n 1 --abbrev-commit FETCH_HEAD | |
8 | #define revision 76fdacd | |
9 | # No changes to image, so don't refetch it | |
10 | %define revision 1.5.2 | |
c5c6476d ER |
11 | Summary: The official GitLab CI runner written in Go |
12 | Name: gitlab-ci-multi-runner | |
ec0a53a6 | 13 | Version: 1.6.0 |
a946f059 | 14 | Release: 1 |
b306b97b | 15 | License: MIT |
c5c6476d ER |
16 | Group: Development/Building |
17 | Source0: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/repository/archive.tar.gz?ref=v%{version}&/%{name}-%{version}.tar.gz | |
ec0a53a6 | 18 | # Source0-md5: 397bc6a197942495d0a5582996f91c3e |
7ad949a0 | 19 | Source1: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-x86_64.tar.xz |
52f287d2 | 20 | # Source1-md5: 0d89c7578a0b5d22a4ae85dcb7d5b4f5 |
7ad949a0 | 21 | Source2: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-arm.tar.xz |
52f287d2 | 22 | # Source2-md5: c0533c581624dcb33095f08f06e6a00b |
72cef35a | 23 | Patch0: nodim_gz.patch |
c5c6476d ER |
24 | URL: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner |
25 | BuildRequires: git-core | |
72cef35a | 26 | %{?with_bindata:BuildRequires: go-bindata >= 3.0.7-1.a0ff2567} |
f81cac35 | 27 | BuildRequires: golang >= 1.4 |
fbac930f ER |
28 | BuildRequires: rpmbuild(macros) >= 1.202 |
29 | Requires(postun): /usr/sbin/groupdel | |
30 | Requires(postun): /usr/sbin/userdel | |
31 | Requires(pre): /bin/id | |
32 | Requires(pre): /usr/bin/getgid | |
33 | Requires(pre): /usr/sbin/groupadd | |
34 | Requires(pre): /usr/sbin/useradd | |
d20ff300 | 35 | Requires: bash |
c5c6476d ER |
36 | Requires: ca-certificates |
37 | Requires: curl | |
38 | Requires: git-core | |
39 | Requires: tar | |
ff1d3f82 | 40 | Suggests: docker >= 1.8 |
fbac930f ER |
41 | Provides: group(gitlab-runner) |
42 | Provides: user(gitlab-runner) | |
4ffe1735 | 43 | ExclusiveArch: %{ix86} %{x8664} %{arm} |
c5c6476d ER |
44 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
45 | ||
4ffe1735 ER |
46 | # go stuff |
47 | %define _enable_debug_packages 0 | |
48 | %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; | |
7ad949a0 | 49 | %define import_path gitlab.com/gitlab-org/gitlab-ci-multi-runner |
4ffe1735 | 50 | |
c5c6476d ER |
51 | %description |
52 | This is the official GitLab Runner written in Go. It runs tests and | |
53 | sends the results to GitLab. GitLab CI is the open-source continuous | |
54 | integration service included with GitLab that coordinates the testing. | |
55 | ||
56 | %prep | |
57 | %setup -qc | |
c5c6476d | 58 | |
7ad949a0 ER |
59 | # for doc |
60 | mv gitlab-ci-multi-runner-*/*.md . | |
61 | ||
62 | # don't you love go? | |
63 | install -d src/$(dirname %{import_path}) | |
64 | mv gitlab-ci-multi-runner-* src/%{import_path} | |
65 | cd src/%{import_path} | |
bf2084d5 | 66 | |
72cef35a ER |
67 | %{!?with_bindata:%patch0 -p1} |
68 | ||
69 | %if %{with bindata} | |
70 | install -d out/docker | |
d16d4f3d ER |
71 | ln -s %{SOURCE1} out/docker |
72 | ln -s %{SOURCE2} out/docker | |
6ada5ccc | 73 | # touch, otherwise make rules would download it nevertheless |
7ad949a0 | 74 | touch out/docker/prebuilt-*.tar.xz |
72cef35a | 75 | %endif |
4ffe1735 | 76 | |
a0a05733 ER |
77 | # avoid docker being used even if executable found |
78 | cat <<'EOF' > docker | |
79 | #!/bin/sh | |
80 | echo >&2 "No docker" | |
81 | exit 1 | |
82 | EOF | |
83 | chmod a+rx docker | |
84 | ||
c5c6476d | 85 | %build |
7ad949a0 ER |
86 | export GOPATH=$(pwd) |
87 | cd src/%{import_path} | |
a0a05733 | 88 | export PATH=$(pwd):$PATH |
bf2084d5 | 89 | |
72cef35a | 90 | %if %{with bindata} |
7ad949a0 ER |
91 | # build docker bindata. if you forget this, you get such error: |
92 | # executors/docker/executor_docker.go:180: undefined: Asset | |
4ffe1735 | 93 | %{__make} docker |
72cef35a ER |
94 | %endif |
95 | ||
69a70248 | 96 | %{__make} version | tee version.txt |
d16d4f3d | 97 | |
7ad949a0 ER |
98 | CN=gitlab.com/gitlab-org/gitlab-ci-multi-runner/common |
99 | LDFLAGS="-X $CN.NAME=gitlab-ci-multi-runner -X $CN.VERSION=%{version} -X $CN.REVISION=%{revision}" | |
4ffe1735 | 100 | %gobuild |
c5c6476d | 101 | |
f81cac35 | 102 | # verify that version matches |
7ad949a0 | 103 | ./gitlab-ci-multi-runner -v > v |
f81cac35 ER |
104 | v=$(awk '$1 == "Version:" {print $2}' v) |
105 | test "$v" = "%{version}" | |
69a70248 | 106 | |
c5c6476d ER |
107 | %install |
108 | rm -rf $RPM_BUILD_ROOT | |
dd56a935 | 109 | install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/var/lib/gitlab-runner/.gitlab-runner} |
770719bc | 110 | |
7ad949a0 | 111 | install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner |
fbac930f | 112 | |
c2bf33c4 ER |
113 | # backward compat name for previous pld packaging |
114 | ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner | |
c5c6476d | 115 | |
72cef35a ER |
116 | %if %{without bindata} |
117 | cp -p %{SOURCE1} $RPM_BUILD_ROOT/var/lib/gitlab-runner | |
118 | cp -p %{SOURCE2} $RPM_BUILD_ROOT/var/lib/gitlab-runner | |
119 | %endif | |
120 | ||
c5c6476d ER |
121 | %clean |
122 | rm -rf $RPM_BUILD_ROOT | |
123 | ||
fbac930f ER |
124 | %pre |
125 | %groupadd -g 330 gitlab-runner | |
126 | %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner | |
127 | ||
128 | %postun | |
129 | if [ "$1" = "0" ]; then | |
130 | %userremove gitlab-runner | |
131 | %groupremove gitlab-runner | |
132 | fi | |
133 | ||
c5c6476d ER |
134 | %files |
135 | %defattr(644,root,root,755) | |
136 | %doc README.md CHANGELOG.md | |
770719bc | 137 | %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner |
4ffe1735 | 138 | %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner |
c2bf33c4 | 139 | %attr(755,root,root) %{_bindir}/gitlab-runner |
fbac930f | 140 | %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner |
dd56a935 | 141 | %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner |
72cef35a ER |
142 | |
143 | %if %{without bindata} | |
144 | /var/lib/gitlab-runner/prebuilt-arm.tar.xz | |
145 | /var/lib/gitlab-runner/prebuilt-x86_64.tar.xz | |
146 | %endif |