From 108fb30957062f344604162512ad43dfbbe5fa31 Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Tue, 18 Oct 2016 15:00:05 -0500 Subject: [PATCH] ceph-build: post build status to shaman for rpm builds Signed-off-by: Andrew Schoen --- ceph-build/build/build_rpm | 85 +----------- ceph-build/build/setup_rpm | 134 +++++++++++++++++++ ceph-build/config/definitions/ceph-build.yml | 2 +- 3 files changed, 138 insertions(+), 83 deletions(-) create mode 100644 ceph-build/build/setup_rpm diff --git a/ceph-build/build/build_rpm b/ceph-build/build/build_rpm index 17c3d984..13fd7f8e 100644 --- a/ceph-build/build/build_rpm +++ b/ceph-build/build/build_rpm @@ -1,88 +1,6 @@ #!/bin/bash set -ex -if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then - exit 0 -fi - -cd "$WORKSPACE" - -get_rpm_dist() { - LSB_RELEASE=/usr/bin/lsb_release - [ ! -x $LSB_RELEASE ] && echo unknown && exit - - ID=`$LSB_RELEASE --short --id` - - case $ID in - RedHatEnterpriseServer) - RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` - DIST=rhel$RELEASE - DISTRO=rhel - ;; - CentOS) - RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` - DIST=el$RELEASE - DISTRO=centos - ;; - Fedora) - RELEASE=`$LSB_RELEASE --short --release` - DIST=fc$RELEASE - DISTRO=fedora - ;; - SUSE\ LINUX) - DESC=`$LSB_RELEASE --short --description` - RELEASE=`$LSB_RELEASE --short --release` - case $DESC in - *openSUSE*) - DIST=opensuse$RELEASE - DISTRO=opensuse - ;; - *Enterprise*) - DIST=sles$RELEASE - DISTRO=sles - ;; - esac - ;; - *) - DIST=unknown - DISTRO=unknown - ;; - esac - - echo $DIST -} - -get_rpm_dist -dist=$DIST -[ -z "$dist" ] && echo no dist && exit 1 -echo dist $dist - -vers=`cat ./dist/version` -# slap -rc to the ref if we are doing a release-candidate build -[ "$RC" = true ] && chacra_ref="$BRANCH-rc" || chacra_ref="$BRANCH" -[ "$TEST" = true ] && chacra_ref="test" - -chacra_endpoint="ceph/${chacra_ref}/${SHA1}/${DISTRO}/${RELEASE}" -chacra_check_url="${chacra_endpoint}/${ARCH}/librados2-${vers}-0.${DIST}.${ARCH}.rpm" - - -if [ "$THROWAWAY" = false ] ; then - # this exists in scripts/build_utils.sh - check_binary_existence $chacra_check_url -fi - -HOST=$(hostname --short) -echo "Building on $(hostname)" -echo " DIST=${DIST}" -echo " ARCH=${ARCH}" -echo " WS=$WORKSPACE" -echo " PWD=$(pwd)" -echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" -echo "*****" -env -echo "*****" - - # create a release directory for ceph-build tools mkdir -p release cp -a dist release/${vers} @@ -146,3 +64,6 @@ EOF # start repo creation $VENV/chacractl repo update ${chacra_endpoint} fi + +# update shaman with the completed build status +update_build_status "completed" "ceph" $NORMAL_DISTRO $NORMAL_DISTRO_VERSION $NORMAL_ARCH diff --git a/ceph-build/build/setup_rpm b/ceph-build/build/setup_rpm new file mode 100644 index 00000000..4a5d1094 --- /dev/null +++ b/ceph-build/build/setup_rpm @@ -0,0 +1,134 @@ +#!/bin/bash + +set -ex +HOST=$(hostname --short) +echo "Building on $(hostname)" +echo " DIST=${DIST}" +echo " BPTAG=${BPTAG}" +echo " KEYID=${KEYID}" +echo " WS=$WORKSPACE" +echo " PWD=$(pwd)" +echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" +echo "*****" +env +echo "*****" + +DIR=/tmp/install-deps.$$ +trap "rm -fr $DIR" EXIT +mkdir -p $DIR +if test $(id -u) != 0 ; then + SUDO=sudo +fi +export LC_ALL=C # the following is vulnerable to i18n + +$SUDO yum install -y redhat-lsb-core + +# unpack the tar.gz that contains the debian dir +cd dist +tar xzf *.orig.tar.gz +cd ceph-* +pwd + +case $(lsb_release -si) in +CentOS|Fedora|SUSE*|RedHatEnterpriseServer) + case $(lsb_release -si) in + SUSE*) + $SUDO zypper -y yum-utils + ;; + *) + $SUDO yum install -y yum-utils + ;; + esac + sed -e 's/@//g' < ceph.spec.in > $DIR/ceph.spec + $SUDO yum-builddep -y $DIR/ceph.spec + ;; +*) + echo "$(lsb_release -si) is unknown, dependencies will have to be installed manually." + ;; +esac + +BRANCH=`branch_slash_filter $BRANCH` + +if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then + exit 0 +fi + +cd $WORKSPACE + +get_rpm_dist() { + LSB_RELEASE=/usr/bin/lsb_release + [ ! -x $LSB_RELEASE ] && echo unknown && exit + + ID=`$LSB_RELEASE --short --id` + + case $ID in + RedHatEnterpriseServer) + RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` + DIST=rhel$RELEASE + DISTRO=rhel + ;; + CentOS) + RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` + DIST=el$RELEASE + DISTRO=centos + ;; + Fedora) + RELEASE=`$LSB_RELEASE --short --release` + DIST=fc$RELEASE + DISTRO=fedora + ;; + SUSE\ LINUX) + DESC=`$LSB_RELEASE --short --description` + RELEASE=`$LSB_RELEASE --short --release` + case $DESC in + *openSUSE*) + DIST=opensuse$RELEASE + DISTRO=opensuse + ;; + *Enterprise*) + DIST=sles$RELEASE + DISTRO=sles + ;; + esac + ;; + *) + DIST=unknown + DISTRO=unknown + ;; + esac + + echo $DIST +} + +get_rpm_dist + +# Normalize variables across rpm/deb builds +NORMAL_DISTRO=$DISTRO +NORMAL_DISTRO_VERSION=$RELEASE +NORMAL_ARCH=$ARCH + +# create build status in shaman +create_build_status "started" "ceph" $NORMAL_DISTRO $NORMAL_DISTRO_VERSION $NORMAL_ARCH + +pkgs=( "chacractl>=0.0.4" ) +install_python_packages "pkgs[@]" + +# create the .chacractl config file using global variables +make_chacractl_config + +dist=$DIST +[ -z "$dist" ] && echo no dist && exit 1 +echo dist $dist + +vers=`cat ./dist/version` +chacra_ref="$BRANCH" + +chacra_endpoint="ceph/${chacra_ref}/${SHA1}/${DISTRO}/${RELEASE}" +chacra_check_url="${chacra_endpoint}/${ARCH}/flavors/${FLAVOR}/librados2-${vers}-0.${DIST}.${ARCH}.rpm" + + +if [ "$THROWAWAY" = false ] ; then + # this exists in scripts/build_utils.sh + # TODO if this exits we need to post to shaman a success + check_binary_existence $chacra_check_url +fi diff --git a/ceph-build/config/definitions/ceph-build.yml b/ceph-build/config/definitions/ceph-build.yml index b296752c..dac97e59 100644 --- a/ceph-build/config/definitions/ceph-build.yml +++ b/ceph-build/config/definitions/ceph-build.yml @@ -69,7 +69,7 @@ !include-raw: - ../../build/validate_rpm - ../../../scripts/build_utils.sh - - ../../build/setup + - ../../build/setup_rpm - ../../build/build_rpm publishers: -- 2.39.5