5 Usage: docker-build.sh [OPTIONS]
15 ID_DEB_BUILD=`cd $D0; pwd`
17 UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk}
18 UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub}
20 while test $# -gt 0; do
22 -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
47 if test -f IDMETA; then
53 if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then
54 DEBIAN_DIST=$DEBIAN_DIST_A
55 UBUNTU_DIST=$UBUNTU_DIST_A
56 CENTOS_DIST=$CENTOS_DIST_A
59 if test "$CENTOS_DIST"; then
60 RNAME=`awk '/Name:/ {print $2}' *.spec`
61 if test "$NAME" -a "$NAME" != "$RNAME"; then
62 echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)"
71 if test "$DEBIAN_DIST" -o "$UBUNTU_DIST"; then
73 DNAME=`awk '/Source:/ {print $2}' debian/control`
74 if test "$NAME" -a "$NAME" != "$DNAME"; then
75 echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)"
83 TAR=${PRODUCT}-${VERSION}.tar.gz
84 if test ! -f "$TAR"; then
85 echo "tar $TAR missing"
90 UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT}
91 echo "Uploading to ${UPLOAD_URI}"
93 for dist in ${CENTOS_DIST}; do
102 echo "$dist not supported"
105 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$F/RPMS"
106 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$F/SRPMS"
107 scp -r build/centos/$dist/rpmbuild/RPMS ${UPLOAD_URI}/redhat/centos/$F
108 scp -r build/centos/$dist/rpmbuild/SRPMS ${UPLOAD_URI}/redhat/centos/$F
110 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >yum-update.log 2>&1; then
111 echo "update-yum-archive.sh failed; inspect yum-update.log"
116 if test -n "${DEBIAN_DIST}"; then
117 for dist in ${DEBIAN_DIST}; do
118 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}"
119 if ! scp build/debian/${dist}/* ${UPLOAD_URI}/debian/${dist}; then
120 echo "Upload failed for $dist"
125 if test -n "${UBUNTU_DIST}"; then
126 for dist in ${UBUNTU_DIST}; do
127 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}"
128 if ! scp build/ubuntu/${dist}/* ${UPLOAD_URI}/ubuntu/${dist}; then
129 echo "Upload failed for $dist"
134 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
135 echo "update-archive.sh failed"
139 echo "Upload successful - we hope"
145 for dist in ${CENTOS_DIST}; do
146 test -d build/centos/$dist && sudo rm -fr build/centos/$dist
147 mkdir -p build/centos/$dist/rpmbuild
148 mkdir -p build/centos/$dist/rpmbuild/BUILD
149 mkdir -p build/centos/$dist/rpmbuild/BUILDROOT
150 mkdir -p build/centos/$dist/rpmbuild/RPMS/noarch
151 mkdir -p build/centos/$dist/rpmbuild/RPMS/x86_64
152 mkdir -p build/centos/$dist/rpmbuild/SOURCES
153 mkdir -p build/centos/$dist/rpmbuild/SPECS
154 mkdir -p build/centos/$dist/rpmbuild/SRPMS
155 cp ${TAR} build/centos/$dist/rpmbuild/SOURCES
157 cp ${SPEC} build/centos/$dist/rpmbuild/SPECS
158 cp IDMETA build/centos/$dist/rpmbuild
159 cp ${ID_DEB_BUILD}/in-docker-rpm.sh build/centos/$dist
165 MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
166 if test ! -x $MKDEBSRC; then
167 echo "$MKDEBSRC not found"
170 cp ${ID_DEB_BUILD}/in-docker.sh .
171 if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then
172 echo "id-mk-deb-changelog.sh failed"
174 if ! ${MKDEBSRC}; then
175 echo "id-mk-deb-src.sh failed"
179 if test -f "$f"; then
184 if test -z "$DSC"; then
185 echo "${DSC} does not exist"
189 if test "${DEBIAN_DIST}"; then
190 for dist in ${DEBIAN_DIST}; do
191 test -f build/debian/$dist && sudo rm -fr build/debian/$dist
192 mkdir -p build/debian
193 cp -a deb-src build/debian/$dist
194 cp ${ID_DEB_BUILD}/in-docker.sh build/debian/$dist
197 if test "${UBUNTU_DIST}"; then
198 for dist in ${UBUNTU_DIST}; do
199 sudo rm -fr build/ubuntu/$dist
200 mkdir -p build/ubuntu
201 cp -a deb-src build/ubuntu/$dist
202 cp ${ID_DEB_BUILD}/in-docker.sh build/ubuntu/$dist
207 if test "${CENTOS_DIST}"; then
208 for dist in ${CENTOS_DIST}; do
220 echo "$dist not supported"
223 cd build/centos/$dist
225 echo "FROM centos:$D" >Dockerfile
226 echo "RUN yum install -y wget yum-utils rpm-build gcc gcc-c++ make" >>Dockerfile
227 echo "RUN rpm --import http://ftp.indexdata.com/pub/yum/centos/$F/RPM-GPG-KEY-indexdata" >>Dockerfile
228 echo "RUN wget http://ftp.indexdata.com/pub/yum/centos/$F/indexdata.repo -P /etc/yum.repos.d/" >>Dockerfile
229 echo 'ENTRYPOINT ["/bin/sh", "-c"]' >>Dockerfile
230 docker build -t indexdata-build-centos-$D .
232 docker run --rm -v "$PWD:/build" -w /build/rpmbuild indexdata-build-centos-$D ../in-docker-rpm.sh >log 2>&1
233 if test $? -eq 0; then
236 echo "Fail. Inspect build/centos/$dist/log"
242 if test "${DEBIAN_DIST}"; then
243 for dist in ${DEBIAN_DIST}; do
244 cd build/debian/$dist
245 echo "FROM debian:$dist" >Dockerfile
246 echo 'RUN apt-get update && apt-get -q install -y wget devscripts equivs' >>Dockerfile
247 echo 'RUN wget -q -O - http://ftp.indexdata.dk/debian/indexdata.asc|apt-key add -' >>Dockerfile
248 echo "RUN echo \"deb http://ftp.indexdata.dk/debian $dist main\" >/etc/apt/sources.list.d/indexdata.list" >>Dockerfile
249 docker build -t indexdata-build-debian-$dist .
250 echo -n "Debian $dist "
251 docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION indexdata-build-debian-$dist ../in-docker.sh >log 2>&1
252 if test $? -eq 0; then
255 echo "Fail. Inspect build/debian/$dist/log"
261 if test "${UBUNTU_DIST}"; then
262 for dist in ${UBUNTU_DIST}; do
263 cd build/ubuntu/$dist
264 echo "FROM ubuntu:$dist" >Dockerfile
265 echo 'RUN apt-get update && apt-get -q install -y wget devscripts equivs' >>Dockerfile
266 echo 'RUN wget -q -O - http://ftp.indexdata.dk/debian/indexdata.asc|apt-key add -' >>Dockerfile
267 echo "RUN echo \"deb http://ftp.indexdata.dk/ubuntu $dist main\" >/etc/apt/sources.list.d/indexdata.list" >>Dockerfile
268 docker build -t indexdata-build-ubuntu-$dist .
269 echo -n "Ubuntu $dist "
270 docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION indexdata-build-ubuntu-$dist ../in-docker.sh >log 2>&1
271 if test $? -eq 0; then
274 echo "Fail. Inspect build/ubuntu/$dist/log"