X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=gitlab-ci-multi-runner.spec;h=fab8bbd4a356f2aa7621d439d9dd418d6c520e51;hb=b5ede9e6a305c94790752ff01e52e7669555036c;hp=f32f132186f814da67877beb7e165f8bd3b18822;hpb=d16d4f3d8efde38d53f64d9d17e306460b82dea2;p=packages%2Fgitlab-runner.git diff --git a/gitlab-ci-multi-runner.spec b/gitlab-ci-multi-runner.spec index f32f132..fab8bbd 100644 --- a/gitlab-ci-multi-runner.spec +++ b/gitlab-ci-multi-runner.spec @@ -1,33 +1,37 @@ -# the revision for images -%define revision %{version} Summary: The official GitLab CI runner written in Go Name: gitlab-ci-multi-runner -Version: 1.4.1 +Version: 1.8.0 Release: 1 License: MIT Group: Development/Building Source0: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/repository/archive.tar.gz?ref=v%{version}&/%{name}-%{version}.tar.gz -# Source0-md5: e24a5ba8093d779e0ce604ae2f4583d8 -Source1: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-x86_64.tar.gz -# Source1-md5: 56701d9092b076647308fe70e0752645 -Source2: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-arm.tar.gz -# Source2-md5: 142cfeb6b29dad3a61e2e9c13951b331 +# Source0-md5: aed7c89fb2d0fa9c61c97d0206cc048b +Source3: %{name}.init +Source4: %{name}.sysconfig +Source5: %{name}.service +Patch0: nodim_gz.patch +Patch1: branch-preserver.patch URL: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner BuildRequires: git-core -BuildRequires: go-bindata >= 3.0.7-1.a0ff2567 -BuildRequires: golang >= 1.4 -BuildRequires: rpmbuild(macros) >= 1.202 +BuildRequires: golang >= 1.6 +BuildRequires: rpmbuild(macros) >= 1.647 +Requires(post,preun): /sbin/chkconfig +Requires(post,preun,postun): systemd-units >= 38 Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd +Requires: bash Requires: ca-certificates -Requires: curl Requires: git-core +Requires: rc-scripts +Requires: systemd-units >= 0.38 Requires: tar -Suggests: docker >= 1.5.0 +Suggests: docker >= 1.8 +Suggests: gitlab-ci-multi-runner-image-arm +Suggests: gitlab-ci-multi-runner-image-x86_64 Provides: group(gitlab-runner) Provides: user(gitlab-runner) ExclusiveArch: %{ix86} %{x8664} %{arm} @@ -36,6 +40,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # go stuff %define _enable_debug_packages 0 %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; +%define import_path gitlab.com/gitlab-org/gitlab-ci-multi-runner %description This is the official GitLab Runner written in Go. It runs tests and @@ -44,16 +49,17 @@ integration service included with GitLab that coordinates the testing. %prep %setup -qc -mv gitlab-ci-multi-runner-*/{.??*,*} . -install -d Godeps/_workspace/src/gitlab.com/gitlab-org -ln -s ../../../../.. Godeps/_workspace/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner +# for doc +mv gitlab-ci-multi-runner-*/*.md . -mkdir -p out/docker -ln -s %{SOURCE1} out/docker -ln -s %{SOURCE2} out/docker -# touch, otherwise make rules would download it nevertheless -touch out/docker/prebuilt-*.tar.gz +# don't you love go? +install -d src/$(dirname %{import_path}) +mv gitlab-ci-multi-runner-* src/%{import_path} +cd src/%{import_path} + +%patch0 -p1 +%patch1 -p1 # avoid docker being used even if executable found cat <<'EOF' > docker @@ -63,45 +69,30 @@ exit 1 EOF chmod a+rx docker -ln -s /bin/true golint -ln -s /bin/true gocyclo -ln -s /bin/true vet -ln -s /bin/true gox - %build -# check that the revision is correct -#tar xvf out/docker/prebuilt.tar.gz repositories -#revision=$(sed -rne 's/.*"gitlab-runner-build":\{"([^"]+)":.*/\1/p' repositories) -#test "$revision" = %{revision} - -export GOPATH=$(pwd):$(pwd)/Godeps/_workspace +export GOPATH=$(pwd) +cd src/%{import_path} export PATH=$(pwd):$PATH -%{__make} docker %{__make} version | tee version.txt -# GO_LDFLAGS ?= -X $(COMMON_PACKAGE_NAMESPACE).NAME=$(PACKAGE_NAME) -X $(COMMON_PACKAGE_NAMESPACE).VERSION=$(VERSION) \ -# -X $(COMMON_PACKAGE_NAMESPACE).REVISION=$(REVISION) -X $(COMMON_PACKAGE_NAMESPACE).BUILT=$(BUILT) \ -# -X $(COMMON_PACKAGE_NAMESPACE).BRANCH=$(BRANCH) -go get github.com/Sirupsen/logrus - -%{__make} -exit 3 -%{__make} build_simple -exit 1 -LDFLAGS="-X main.NAME gitlab-ci-multi-runner -X main.VERSION %{version} -X main.REVISION %{revision}" +CN=gitlab.com/gitlab-org/gitlab-ci-multi-runner/common +LDFLAGS="-X $CN.NAME=gitlab-ci-multi-runner -X $CN.VERSION=%{version} -X $CN.REVISION=%{version}" %gobuild # verify that version matches -./gitlab-ci-multi-runner-%{version} -v > v +./gitlab-ci-multi-runner -v > v v=$(awk '$1 == "Version:" {print $2}' v) test "$v" = "%{version}" %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/var/lib/gitlab-runner/.gitlab-runner} +install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/etc/{rc.d/init.d,sysconfig},%{systemdunitdir},/var/lib/gitlab-runner/.gitlab-runner} -install -p %{name}-%{version} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner +install -p src/%{import_path}/%{name} $RPM_BUILD_ROOT%{_bindir}/gitlab-runner +install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name} +cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir} # backward compat name for previous pld packaging ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner @@ -118,12 +109,28 @@ if [ "$1" = "0" ]; then %userremove gitlab-runner %groupremove gitlab-runner fi +%systemd_reload + +%post +/sbin/chkconfig --add %{name} +%service %{name} restart +%systemd_post %{name}.service + +%preun +if [ "$1" = "0" ]; then + %service -q %{name} stop + /sbin/chkconfig --del %{name} +fi +%systemd_preun %{name}.service %files %defattr(644,root,root,755) %doc README.md CHANGELOG.md +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/gitlab-ci-multi-runner +%attr(754,root,root) /etc/rc.d/init.d/gitlab-ci-multi-runner %dir %attr(750,root,root) %{_sysconfdir}/gitlab-runner %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner %attr(755,root,root) %{_bindir}/gitlab-runner +%{systemdunitdir}/gitlab-ci-multi-runner.service %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner