X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=id-deb-build%2Fdocker-build.sh;h=780bcfc05f658fd494122a36a93a5ecd61d5253f;hb=d05e0aa0fee7aa62cf5f2338a7bb507f51b52fba;hp=ad8a797a1e52c84b6b58de6657be3c159b8080e3;hpb=3f7295e3a8b0aa7cb93b53846345b841e9a773ee;p=git-tools-moved-to-github.git diff --git a/id-deb-build/docker-build.sh b/id-deb-build/docker-build.sh index ad8a797..780bcfc 100755 --- a/id-deb-build/docker-build.sh +++ b/id-deb-build/docker-build.sh @@ -6,11 +6,11 @@ Usage: docker-build.sh [OPTIONS] Options: [--debian=distros] [--ubuntu=distros] + [--verbose] [--upload] EOF exit $1 } -set -x D0=`dirname $0` ID_DEB_BUILD=`cd $D0; pwd` @@ -32,12 +32,12 @@ while test $# -gt 0; do --centos=*) CENTOS_DIST_A=$optarg ;; - --concurrency=*) - concurrency=$optarg - ;; --upload) upload=true ;; + --verbose) + set -x + ;; -*) do_help=yes ;; @@ -57,8 +57,12 @@ if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then fi if test "$CENTOS_DIST"; then - echo "CentOS not yet supported" - exit 1 + RNAME=`awk '/Name:/ {print $2}' *.spec` + if test "$NAME" -a "$NAME" != "$RNAME"; then + echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)" + exit 1 + fi + PRODUCT=$RNAME centos=true else centos=false @@ -76,9 +80,36 @@ else debian=false fi +TAR=${PRODUCT}-${VERSION}.tar.gz +if test ! -f "$TAR"; then + echo "tar $TAR missing" + exit 1 +fi + if $upload; then UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT} echo "Uploading to ${UPLOAD_URI}" + if $centos; then + for dist in ${CENTOS_DIST}; do + case $dist in + centos6) + D=6;; + centos7) + D=7;; + *) + echo "$dist not supported" + exit 1 + esac + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$D/RPMS" + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$D/SRPMS" + scp -r build/centos/$dist/rpmbuild/RPMS ${UPLOAD_URI}/redhat/centos/$D + scp -r build/centos/$dist/rpmbuild/SRPMS ${UPLOAD_URI}/redhat/centos/$D + done + if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >yum-update.log 2>&1; then + echo "update-yum-archive.sh failed; inspect yum-update.log" + exit 1 + fi + fi if $debian; then if test -n "${DEBIAN_DIST}"; then for dist in ${DEBIAN_DIST}; do @@ -107,6 +138,27 @@ if $upload; then exit 0 fi + +if $centos; then + for dist in ${CENTOS_DIST}; do + test -d build/centos/$dist && sudo rm -fr build/centos/$dist + mkdir -p build/centos/$dist/rpmbuild + mkdir -p build/centos/$dist/rpmbuild/BUILD + mkdir -p build/centos/$dist/rpmbuild/BUILDROOT + mkdir -p build/centos/$dist/rpmbuild/RPMS/noarch + mkdir -p build/centos/$dist/rpmbuild/RPMS/x86_64 + mkdir -p build/centos/$dist/rpmbuild/SOURCES + mkdir -p build/centos/$dist/rpmbuild/SPECS + mkdir -p build/centos/$dist/rpmbuild/SRPMS + cp ${TAR} build/centos/$dist/rpmbuild/SOURCES + SPEC=${PRODUCT}.spec + cp ${SPEC} build/centos/$dist/rpmbuild/SPECS + cp IDMETA build/centos/$dist/rpmbuild + cp ${ID_DEB_BUILD}/in-docker-rpm.sh build/centos/$dist + done + +fi + if $debian; then MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh if test ! -x $MKDEBSRC; then @@ -134,7 +186,7 @@ if $debian; then if test "${DEBIAN_DIST}"; then for dist in ${DEBIAN_DIST}; do - sudo rm -fr build/debian/$dist + test -f build/debian/$dist && sudo rm -fr build/debian/$dist mkdir -p build/debian cp -a deb-src build/debian/$dist cp ${ID_DEB_BUILD}/in-docker.sh build/debian/$dist @@ -148,20 +200,55 @@ if $debian; then cp ${ID_DEB_BUILD}/in-docker.sh build/ubuntu/$dist done fi - if test "${DEBIAN_DIST}"; then - for dist in ${DEBIAN_DIST}; do - cd build/debian/$dist - docker run -it --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION debian:$dist ../in-docker.sh debian $dist - cd ../../.. - done - fi - if test "${UBUNTU_DIST}"; then - for dist in ${UBUNTU_DIST}; do - cd build/ubuntu/$dist - docker run -it --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION ubuntu:$dist ../in-docker.sh ubuntu $dist - cd ../../.. - done - fi +fi + +if test "${CENTOS_DIST}"; then + for dist in ${CENTOS_DIST}; do + echo -n "$dist " + case $dist in + centos6) + D=6;; + centos7) + D=7;; + *) + echo "$dist not supported" + exit 1 + esac + cd build/centos/$dist + docker run --rm -v "$PWD:/build" -w /build/rpmbuild centos:$D ../in-docker-rpm.sh centos $D >log 2>&1 + if test $? -eq 0; then + echo Done + else + echo "Fail. Inspect build/centos/$dist/log" + fi + cd ../../.. + done +fi +if test "${DEBIAN_DIST}"; then + for dist in ${DEBIAN_DIST}; do + echo -n "Debian $dist " + cd build/debian/$dist + docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION debian:$dist ../in-docker.sh debian $dist >log 2>&1 + if test $? -eq 0; then + echo Done + else + echo "Fail. Inspect build/debian/$dist/log" + fi + cd ../../.. + done +fi +if test "${UBUNTU_DIST}"; then + for dist in ${UBUNTU_DIST}; do + echo -n "Ubuntu $dist" + cd build/ubuntu/$dist + docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION ubuntu:$dist ../in-docker.sh ubuntu $dist >log 2>&1 + if test $? -eq 0; then + echo Done + else + echo "Fail. Inspect build/ubuntu/$dist/log" + fi + cd ../../.. + done fi # Local Variables: