]> git.pld-linux.org Git - packages/gitlab-runner.git/blobdiff - gitlab-ci-multi-runner.spec
up to 1.7.1
[packages/gitlab-runner.git] / gitlab-ci-multi-runner.spec
index a3acedd348fb9c33f1ee3ab6aae8b61c43265c1d..8ba9fb959c86758284dd670fd4639ab539b90549 100644 (file)
@@ -1,18 +1,30 @@
+#
+# Conditional build:
+%bcond_with    bindata         # embed docker images to binary (upstream compatible)
+
 # the revision for images
-%define        revision        88fc806
+# $ git fetch https://gitlab.com/gitlab-org/gitlab-ci-multi-runner refs/tags/v1.6.0
+# $ git rev-list -n 1 --abbrev-commit FETCH_HEAD
+#define revision 76fdacd
+# No changes to image, so don't refetch it
+%define revision 1.5.2
 Summary:       The official GitLab CI runner written in Go
 Name:          gitlab-ci-multi-runner
-Version:       1.2.0
+Version:       1.7.1
 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: ca82170f56b9e334beffd664d509e5a3
-Source1:       https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt.tar.gz
-# Source1-md5: d616dcc457a6ce69bed4af2ca08dfe0a
+# Source0-md5: ffc78abf7e8aa4aef2778aea14d5e6a0
+Source1:       https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-x86_64.tar.xz
+# Source1-md5: 0d89c7578a0b5d22a4ae85dcb7d5b4f5
+Source2:       https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/docker/prebuilt-arm.tar.xz
+# Source2-md5: c0533c581624dcb33095f08f06e6a00b
+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
+%{?with_bindata:BuildRequires: go-bindata >= 3.0.7-1.a0ff2567}
 BuildRequires: golang >= 1.4
 BuildRequires: rpmbuild(macros) >= 1.202
 Requires(postun):      /usr/sbin/groupdel
@@ -21,11 +33,12 @@ 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:      tar
-Suggests:      docker >= 1.5.0
+Suggests:      docker >= 1.8
 Provides:      group(gitlab-runner)
 Provides:      user(gitlab-runner)
 ExclusiveArch: %{ix86} %{x8664} %{arm}
@@ -34,6 +47,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
@@ -42,15 +56,25 @@ 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 .
+
+# don't you love go?
+install -d src/$(dirname %{import_path})
+mv gitlab-ci-multi-runner-* src/%{import_path}
+cd src/%{import_path}
 
-mkdir -p out/docker
-ln -s %{SOURCE1} out/docker/prebuilt.tar.gz
+%{!?with_bindata:%patch0 -p1}
+%patch1 -p5
+
+%if %{with bindata}
+install -d 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
+touch out/docker/prebuilt-*.tar.xz
+%endif
 
 # avoid docker being used even if executable found
 cat <<'EOF' > docker
@@ -61,34 +85,41 @@ EOF
 chmod a+rx docker
 
 %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
 
+%if %{with bindata}
+# build docker bindata. if you forget this, you get such error:
+# executors/docker/executor_docker.go:180: undefined: Asset
 %{__make} docker
+%endif
+
 %{__make} version | tee version.txt
 
-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=%{revision}"
 %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}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/gitlab-runner,%{_bindir},/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
 
 # backward compat name for previous pld packaging
 ln -s gitlab-runner $RPM_BUILD_ROOT%{_bindir}/gitlab-ci-multi-runner
 
+%if %{without bindata}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/var/lib/gitlab-runner
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/var/lib/gitlab-runner
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -109,3 +140,9 @@ fi
 %attr(755,root,root) %{_bindir}/gitlab-ci-multi-runner
 %attr(755,root,root) %{_bindir}/gitlab-runner
 %dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner
+%dir %attr(750,gitlab-runner,gitlab-runner) /var/lib/gitlab-runner/.gitlab-runner
+
+%if %{without bindata}
+/var/lib/gitlab-runner/prebuilt-arm.tar.xz
+/var/lib/gitlab-runner/prebuilt-x86_64.tar.xz
+%endif
This page took 0.081335 seconds and 4 git commands to generate.