|
|
|
%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 <<EOF
|
|
|
|
[Unit]
|
|
|
|
Description=Concourse CI Web Process
|
|
|
|
After=postgresql.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
User=concourse
|
|
|
|
Restart=on-failure
|
|
|
|
EnvironmentFile=%{ccdir}etc/web/config
|
|
|
|
ExecStart=%{ccdir}bin/concourse web
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
|
|
cat > %{buildroot}%{_unitdir}/concourse-worker.service <<EOF
|
|
|
|
[Unit]
|
|
|
|
Description=Concourse CI Worker
|
|
|
|
After=network-online.target
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
User=concourse
|
|
|
|
Restart=on-failure
|
|
|
|
EnvironmentFile=%{ccdir}etc/worker/config
|
|
|
|
ExecStart=%{ccdir}bin/concourse worker
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
|
|
mkdir -p %{buildroot}%{ccdir}/etc/web/
|
|
|
|
cp %{SOURCE100} %{buildroot}%{ccdir}/etc/web/config
|
|
|
|
mkdir -p %{buildroot}%{ccdir}/etc/worker/
|
|
|
|
cp %{SOURCE200} %{buildroot}%{ccdir}/etc/worker/config
|
|
|
|
mkdir -p %{buildroot}%{ccdir}/web/
|
|
|
|
%ifarch x86_64
|
|
|
|
cp -rv src/github.com/concourse/concourse/web/public %{buildroot}%{ccdir}/web/
|
|
|
|
%endif
|
|
|
|
mkdir -p %{buildroot}%{ccdir}/keys/
|
|
|
|
cp src/github.com/cloudfoundry/guardian/gdn %{buildroot}/%{_bindir}/
|
|
|
|
|
|
|
|
|
|
|
|
%pre
|
|
|
|
getent group concourse > /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
|