]> git.pld-linux.org Git - packages/gitlab-runner.git/blob - gitlab-ci-multi-runner.spec
up to 1.8.0; prebuilt docker images moved to separate package
[packages/gitlab-runner.git] / gitlab-ci-multi-runner.spec
1
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
7 %define revision 1.5.2
8 Summary:        The official GitLab CI runner written in Go
9 Name:           gitlab-ci-multi-runner
10 Version:        1.8.0
11 Release:        1
12 License:        MIT
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
16 Source3:        %{name}.init
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
33 Requires:       bash
34 Requires:       ca-certificates
35 Requires:       git-core
36 Requires:       rc-scripts
37 Requires:       systemd-units >= 0.38
38 Requires:       tar
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)
46
47 # go stuff
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
51
52 %description
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.
56
57 %prep
58 %setup -qc
59
60 # for doc
61 mv gitlab-ci-multi-runner-*/*.md .
62
63 # don't you love go?
64 install -d src/$(dirname %{import_path})
65 mv gitlab-ci-multi-runner-* src/%{import_path}
66 cd src/%{import_path}
67
68 %patch0 -p1
69 %patch1 -p1
70
71 # avoid docker being used even if executable found
72 cat <<'EOF' > docker
73 #!/bin/sh
74 echo >&2 "No docker"
75 exit 1
76 EOF
77 chmod a+rx docker
78
79 %build
80 export GOPATH=$(pwd)
81 cd src/%{import_path}
82 export PATH=$(pwd):$PATH
83
84 %{__make} version | tee version.txt
85
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}"
88 %gobuild
89
90 # verify that version matches
91 ./gitlab-ci-multi-runner -v > v
92 v=$(awk '$1 == "Version:" {print $2}' v)
93 test "$v" = "%{version}"
94
95 %install
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}
98
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}
103
104 # backward compat name for previous pld packaging
105 ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner
106
107 %clean
108 rm -rf $RPM_BUILD_ROOT
109
110 %pre
111 %groupadd -g 330 gitlab-runner
112 %useradd -u 330 -d /var/lib/gitlab-runner -g gitlab-runner -c "GitLab Runner" gitlab-runner
113
114 %postun
115 if [ "$1" = "0" ]; then
116         %userremove gitlab-runner
117         %groupremove gitlab-runner
118 fi
119 %systemd_reload
120
121 %post
122 /sbin/chkconfig --add %{name}
123 %service %{name} restart
124 %systemd_post %{name}.service
125
126 %preun
127 if [ "$1" = "0" ]; then
128         %service -q %{name} stop
129         /sbin/chkconfig --del %{name}
130 fi
131 %systemd_preun %{name}.service
132
133 %files
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
This page took 0.039396 seconds and 3 git commands to generate.