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
86 UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT}
87 echo "Uploading to ${UPLOAD_URI}"
89 if test -n "${DEBIAN_DIST}"; then
90 for dist in ${DEBIAN_DIST}; do
91 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}"
92 if ! scp build/debian/${dist}/* ${UPLOAD_URI}/debian/${dist}; then
93 echo "Upload failed for $dist"
98 if test -n "${UBUNTU_DIST}"; then
99 for dist in ${UBUNTU_DIST}; do
100 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}"
101 if ! scp build/ubuntu/${dist}/* ${UPLOAD_URI}/ubuntu/${dist}; then
102 echo "Upload failed for $dist"
107 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
108 echo "update-archive.sh failed"
112 echo "Upload successful - we hope"
117 mkdir -p rpmbuild/BUILD
118 mkdir -p rpmbuild/BUILDROOT
119 mkdir -p rpmbuild/RPMS/noarch
120 mkdir -p rpmbuild/RPMS/x86_64
121 mkdir -p rpmbuild/SOURCES
122 mkdir -p rpmbuild/SPECS
123 mkdir -p rpmbuild/SRPMS
125 echo "%_topdir /home/mock/rpmbuild" >rpmbuild/rpmmacros
126 echo "%_source_filedigest_algorithm 0" >>rpmbuild/rpmmacros
127 echo "%_binary_filedigest_algorithm 0" >>rpmbuild/rpmmacros
129 cp ${ID_DEB_BUILD}/Dockerfile.mock rpmbuild
130 cp ${TAR} rpmbuild/SOURCES
132 cat ${SPEC}|sed "s/%define idmetaversion.*/%define idmetaversion ${VERSION}/" >rpmbuild/SPECS/${SPEC}
135 for dist in ${CENTOS_DIST}; do
148 rm -f rpmbuild/run.sh
149 echo '#!/bin/sh' >rpmbuild/run.sh
150 echo "rpmbuild -bs rpmbuild/SPECS/${SPEC}" >>rpmbuild/run.sh
151 echo "/usr/bin/mock --resultdir=rpmbuild -r $r rpmbuild/SRPMS/${PRODUCT}-${VERSION}*src.rpm" >>rpmbuild/run.sh
153 docker build -t indexdata-fedora-mock -f rpmbuild/Dockerfile.mock .
154 docker run --privileged -it --rm indexdata-fedora-mock rpmbuild/run.sh
160 MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
161 if test ! -x $MKDEBSRC; then
162 echo "$MKDEBSRC not found"
165 cp ${ID_DEB_BUILD}/in-docker.sh .
166 if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then
167 echo "id-mk-deb-changelog.sh failed"
169 if ! ${MKDEBSRC}; then
170 echo "id-mk-deb-src.sh failed"
174 if test -f "$f"; then
179 if test -z "$DSC"; then
180 echo "${DSC} does not exist"
184 if test "${DEBIAN_DIST}"; then
185 for dist in ${DEBIAN_DIST}; do
186 sudo rm -fr build/debian/$dist
187 mkdir -p build/debian
188 cp -a deb-src build/debian/$dist
189 cp ${ID_DEB_BUILD}/in-docker.sh build/debian/$dist
192 if test "${UBUNTU_DIST}"; then
193 for dist in ${UBUNTU_DIST}; do
194 sudo rm -fr build/ubuntu/$dist
195 mkdir -p build/ubuntu
196 cp -a deb-src build/ubuntu/$dist
197 cp ${ID_DEB_BUILD}/in-docker.sh build/ubuntu/$dist
200 if test "${DEBIAN_DIST}"; then
201 for dist in ${DEBIAN_DIST}; do
202 cd build/debian/$dist
203 docker run -it --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION debian:$dist ../in-docker.sh debian $dist
207 if test "${UBUNTU_DIST}"; then
208 for dist in ${UBUNTU_DIST}; do
209 cd build/ubuntu/$dist
210 docker run -it --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION ubuntu:$dist ../in-docker.sh ubuntu $dist