X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=id-deb-build%2Fdocker-build.sh;h=f09202a546680aae38e520ba75885c04f1d9e4e3;hb=3a80eb155cc6f30b5542e11663cafbce1036a145;hp=aa39fb458922115648e8508e4b927d3b6fb9e176;hpb=559bd2b8c493acf17b11c4e3c69afdd43edeaed3;p=git-tools-moved-to-github.git diff --git a/id-deb-build/docker-build.sh b/id-deb-build/docker-build.sh index aa39fb4..f09202a 100755 --- a/id-deb-build/docker-build.sh +++ b/id-deb-build/docker-build.sh @@ -11,6 +11,61 @@ Options: EOF exit $1 } + + +centos_map() +{ + dist=$1 + case $dist in + centos6) + F=6;; + centos7) + F=7;; + *) + echo "$dist not supported" + exit 1 + esac + return $F +} + +prepare_deb() +{ + TYPE=$1 + DISTS=$2 + + for dist in ${DISTS}; do + test -f build/$TYPE/$dist && sudo rm -fr build/$TYPE/$dist + mkdir -p build/$TYPE + cp -a deb-src build/$TYPE/$dist + cp ${ID_DEB_BUILD}/in-docker-deb.sh build/$TYPE/$dist + done +} + +run_deb() +{ + TYPE=$1 + DISTS=$2 + + for dist in ${DISTS}; do + cd build/$TYPE/$dist + echo "FROM $TYPE:$dist" >Dockerfile + echo "ENV DEBIAN_FRONTEND noninteractive" >>Dockerfile + echo 'RUN apt-get update && apt-get -q install -y wget devscripts equivs' >>Dockerfile + echo 'RUN wget -q -O - http://ftp.indexdata.dk/debian/indexdata.asc|apt-key add -' >>Dockerfile + echo "RUN echo \"deb http://ftp.indexdata.dk/$TYPE $dist main\" >/etc/apt/sources.list.d/indexdata.list" >>Dockerfile + docker build -t indexdata-build-$TYPE:$dist . + echo -n "$TYPE $dist " + docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION indexdata-build-$TYPE:$dist ../in-docker-deb.sh >log 2>&1 + if test $? -eq 0; then + echo Done + else + echo "Fail. Inspect build/$TYPE/$dist/log" + exit 1 + fi + cd ../../.. + done +} + D0=`dirname $0` ID_DEB_BUILD=`cd $D0; pwd` @@ -91,19 +146,13 @@ if $upload; then 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 + centos_map $dist + F=$? + test $F = "5" && F=5.5 + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$F/RPMS" + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/centos/$F/SRPMS" + scp -r build/centos/$dist/rpmbuild/RPMS ${UPLOAD_URI}/redhat/centos/$F + scp -r build/centos/$dist/rpmbuild/SRPMS ${UPLOAD_URI}/redhat/centos/$F 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" @@ -114,7 +163,7 @@ if $upload; then if test -n "${DEBIAN_DIST}"; then for dist in ${DEBIAN_DIST}; do ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}" - if ! scp build/debian/${dist}/* ${UPLOAD_URI}/debian/${dist}; then + if ! scp build/debian/${dist}/*_${VERSION}* ${UPLOAD_URI}/debian/${dist}; then echo "Upload failed for $dist" exit 1 fi @@ -123,7 +172,7 @@ if $upload; then if test -n "${UBUNTU_DIST}"; then for dist in ${UBUNTU_DIST}; do ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}" - if ! scp build/ubuntu/${dist}/* ${UPLOAD_URI}/ubuntu/${dist}; then + if ! scp build/ubuntu/${dist}/*_${VERSION}* ${UPLOAD_URI}/ubuntu/${dist}; then echo "Upload failed for $dist" exit 1 fi @@ -138,7 +187,6 @@ 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 @@ -165,10 +213,10 @@ if $debian; then echo "$MKDEBSRC not found" exit 1 fi - cp ${ID_DEB_BUILD}/in-docker.sh . if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then echo "id-mk-deb-changelog.sh failed" fi + rm -fr deb-src if ! ${MKDEBSRC}; then echo "id-mk-deb-src.sh failed" fi @@ -183,46 +231,29 @@ if $debian; then echo "${DSC} does not exist" exit 1 fi - - if test "${DEBIAN_DIST}"; then - for dist in ${DEBIAN_DIST}; do - 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 - done - fi - if test "${UBUNTU_DIST}"; then - for dist in ${UBUNTU_DIST}; do - sudo rm -fr build/ubuntu/$dist - mkdir -p build/ubuntu - cp -a deb-src build/ubuntu/$dist - cp ${ID_DEB_BUILD}/in-docker.sh build/ubuntu/$dist - done - fi +fi +if test "${DEBIAN_DIST}"; then + prepare_deb debian "${DEBIAN_DIST}" +fi +if test "${UBUNTU_DIST}"; then + prepare_deb ubuntu "${UBUNTU_DIST}" fi if test "${CENTOS_DIST}"; then for dist in ${CENTOS_DIST}; do - case $dist in - centos6) - D=6;; - centos7) - D=7;; - *) - echo "$dist not supported" - exit 1 - esac + centos_map $dist + D=$? + F=$D + test $F = "5" && F=5.5 cd build/centos/$dist - echo "FROM centos:$D" >Dockerfile - echo "RUN yum install -y wget yum-utils rpm-build gcc gcc-c++ make" >>Dockerfile - echo "RUN rpm --import http://ftp.indexdata.com/pub/yum/centos/$D/RPM-GPG-KEY-indexdata" >>Dockerfile - echo "RUN wget http://ftp.indexdata.com/pub/yum/centos/$D/indexdata.repo -P /etc/yum.repos.d/" >>Dockerfile + echo "RUN yum install -y wget yum-utils redhat-rpm-config rpm-build gcc gcc-c++ make" >>Dockerfile + echo "RUN rpm --import http://ftp.indexdata.com/pub/yum/centos/$F/RPM-GPG-KEY-indexdata" >>Dockerfile + echo "RUN wget -q http://ftp.indexdata.com/pub/yum/centos/$F/indexdata.repo -P /etc/yum.repos.d/" >>Dockerfile echo 'ENTRYPOINT ["/bin/sh", "-c"]' >>Dockerfile - docker build -t indexdata-build-centos-$D . + docker build -t indexdata-build-centos:$D . echo -n "$dist " - docker run --rm -v "$PWD:/build" -w /build/rpmbuild indexdata-build-centos-$D ../in-docker-rpm.sh >log 2>&1 + docker run --rm -v "$PWD:/build" -w /build/rpmbuild indexdata-build-centos:$D ../in-docker-rpm.sh >log 2>&1 if test $? -eq 0; then echo Done else @@ -233,42 +264,10 @@ if test "${CENTOS_DIST}"; then done fi if test "${DEBIAN_DIST}"; then - for dist in ${DEBIAN_DIST}; do - cd build/debian/$dist - echo "FROM debian:$dist" >Dockerfile - echo 'RUN apt-get update && apt-get -q install -y wget devscripts equivs' >>Dockerfile - echo 'RUN wget -q -O - http://ftp.indexdata.dk/debian/indexdata.asc|apt-key add -' >>Dockerfile - echo "RUN echo \"deb http://ftp.indexdata.dk/debian $dist main\" >/etc/apt/sources.list.d/indexdata.list" >>Dockerfile - docker build -t indexdata-build-debian-$dist . - echo -n "Debian $dist " - docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION indexdata-build-debian-$dist ../in-docker.sh >log 2>&1 - if test $? -eq 0; then - echo Done - else - echo "Fail. Inspect build/debian/$dist/log" - exit 1 - fi - cd ../../.. - done + run_deb debian "${DEBIAN_DIST}" fi if test "${UBUNTU_DIST}"; then - for dist in ${UBUNTU_DIST}; do - cd build/ubuntu/$dist - echo "FROM ubuntu:$dist" >Dockerfile - echo 'RUN apt-get update && apt-get -q install -y wget devscripts equivs' >>Dockerfile - echo 'RUN wget -q -O - http://ftp.indexdata.dk/debian/indexdata.asc|apt-key add -' >>Dockerfile - echo "RUN echo \"deb http://ftp.indexdata.dk/ubuntu $dist main\" >/etc/apt/sources.list.d/indexdata.list" >>Dockerfile - docker build -t indexdata-build-ubuntu-$dist . - echo -n "Ubuntu $dist " - docker run --rm -v "$PWD:/build" -w /build/$PRODUCT-$VERSION indexdata-build-ubuntu-$dist ../in-docker.sh >log 2>&1 - if test $? -eq 0; then - echo Done - else - echo "Fail. Inspect build/ubuntu/$dist/log" - exit 1 - fi - cd ../../.. - done + run_deb ubuntu "${UBUNTU_DIST}" fi # Local Variables: