%define ccdir /var/lib/concourse/ Name: concourse Version: 7.2.0 Release: 1%{?dist} Source0: https://github.com/concourse/concourse/archive/v%{version}.tar.gz Summary: Concourse is a container-based continuous thing-doer written in Go and Elm. Group: System/Pipeline License: Apache URL: https://concourse-ci.org/ BuildRequires: golang #Requires: %description Concourse is an open-source continuous thing-doer. Built on the simple mechanics of resources, tasks, and jobs, Concourse presents a general approach to automation that makes it great for CI/CD. %package web Source100: concourse-web.config Summary: Concourse Web Requires: concourse BuildArch: noarch %description web %package worker Source200: concourse-worker.config Summary: Concourse Worker Requires: concourse %description worker %package fly Summary: A command line interface that runs a build in a container with ATC %description fly %prep %setup -q -c %{name}-%{version} mkdir -p src/github.com/concourse/ tar xvf %{SOURCE0} mv concourse-%{version} src/github.com/concourse/concourse/ mkdir -p src/github.com/cloudfoundry/ cd src/github.com/cloudfoundry/ git clone https://github.com/cloudfoundry/guardian %build export GOPATH=`pwd` export GO111MODULE=on pushd src/github.com/concourse/concourse %ifarch ppc64 export CGO_ENABLED=1 %endif go mod download go build -v -trimpath -gcflags=all="-N -l" -ldflags "-extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid "%{version}" -X 'github.com/concourse.Version="%{version}"'" -o concourse ./cmd/concourse pushd fly go build -v -trimpath -gcflags=all="-N -l" -ldflags "-extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid "%{version}" -X 'gibhub.com/concourse.Version="%{version}"'" -o fly popd ### TODO: port elm/ghc to ppc64le ### currently build as noarch on x64 and use assets on other arches %ifarch x86_64 #pushd web/assets/css/ npm install -g lessc #$GOPATH/src/github.com/concourse/concourse/node_modules/lessc/node_modules/less/bin/lessc -x main.less > main.css; yarnpkg build-less yarnpkg build-elm npm install -g webpack npm install -g webpack-cli #$GOPATH/src/github.com/concourse/concourse/node_modules/webpack-cli/bin/cli.js --mode production yarnpkg build-js #popd %endif popd pushd src/github.com/cloudfoundry/guardian go build -v -trimpath -gcflags=all="-N -l" -ldflags "-extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid "%{version}" -X 'main.version="%{version}"'" -o gdn ./cmd/gdn popd %install mkdir -p %{buildroot}%{ccdir}/bin/ cp -rv src/github.com/concourse/concourse/concourse %{buildroot}%{ccdir}/bin/ mkdir -p %{buildroot}%{_bindir} cp -rv src/github.com/concourse/concourse/fly/fly %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_unitdir} cat > %{buildroot}%{_unitdir}/concourse-web.service < %{buildroot}%{_unitdir}/concourse-worker.service < /dev/null || groupadd -r concourse getent passwd concourse > /dev/null || useradd -r -d %{ccdir} -g concourse -s /sbin/nologin -c "Concourse User" concourse exit 0 %post web %systemd_post concourse-web.service %preun web %systemd_preun concourse-web.service %postun web %systemd_postun concourse-web.service %post worker %systemd_post concourse-worker.service %postun worker %systemd_postun concourse-worker.service %preun worker %systemd_preun concourse-worker.service %files %{ccdir}/bin/concourse %ifarch x86_64 %files web %config(noreplace) %{ccdir}/etc/web/config %{ccdir}/ %{ccdir}/web/public/ %{_unitdir}/concourse-web.service %endif %files worker %config(noreplace) %{ccdir}/etc/worker/config %{_unitdir}/concourse-worker.service %{_bindir}/gdn %files fly %{_bindir}/fly %changelog