From: Andrew Schoen Date: Tue, 20 Oct 2015 15:36:01 +0000 (-0500) Subject: Rename ceph-build to ceph-build-next X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f2d116de076e92eb77704a10b05bb402dcea6002;p=ceph-build.git Rename ceph-build to ceph-build-next This job will be the new way to do things with chacra Signed-off-by: Andrew Schoen --- diff --git a/ceph-build-next/build/build_deb b/ceph-build-next/build/build_deb new file mode 100644 index 00000000..4490765e --- /dev/null +++ b/ceph-build-next/build/build_deb @@ -0,0 +1,170 @@ +#!/bin/bash +set -ex + +# Only do actual work when we are a DEB distro +if test -f /etc/redhat-release ; then + exit 0 +fi + +get_bptag() { + dist=$1 + + [ "$dist" = "sid" ] && dver="" + [ "$dist" = "jessie" ] && dver="~bpo80+1" + [ "$dist" = "wheezy" ] && dver="~bpo70+1" + [ "$dist" = "squeeze" ] && dver="~bpo60+1" + [ "$dist" = "lenny" ] && dver="~bpo50+1" + [ "$dist" = "trusty" ] && dver="$dist" + [ "$dist" = "saucy" ] && dver="$dist" + [ "$dist" = "precise" ] && dver="$dist" + [ "$dist" = "oneiric" ] && dver="$dist" + [ "$dist" = "natty" ] && dver="$dist" + [ "$dist" = "maverick" ] && dver="$dist" + [ "$dist" = "lucid" ] && dver="$dist" + [ "$dist" = "karmic" ] && dver="$dist" + + echo $dver +} + +BPTAG=`get_bptag $DIST` + +HOST=$(hostname --short) +echo "Building on $(hostname) Date: $(date)" +echo " DIST=${DIST}" +echo " BPTAG=${BPTAG}" +echo " WS=$WORKSPACE" +echo " PWD=$(pwd)" +echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" +echo "*****" +env +echo "*****" + +vers=`cat ./dist/version` +# create a release directory for ceph-build tools +mkdir -p release +cp -a dist release/${vers} +echo $DIST > release/${vers}/debian_dists +echo "${vers}-1" > release/${vers}/debian_version + +cd release/$vers + + +# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK +# FIXME: I don't think we need this 'hack' anymore +# Dirty Hack: +baddist=$(echo $DIST | grep -ic -e squeeze -e wheezy || true) +if [ $baddist -eq 1 ] +then + sed -i 's/ libbabeltrace-ctf-dev, libbabeltrace-dev,//g' ceph_${vers}-1.dsc || true + sed -i 's/ liblttng-ust-dev//g' ceph_${vers}-1.dsc || true + +fi +# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK + + +# unpack sources +dpkg-source -x ceph_${vers}-1.dsc + + +# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK +if [ $baddist -eq 1 ] +then + rm -vf *.orig.tar.gz || true + grep -v babeltrace ceph-${vers}/debian/control | grep -v liblttng > ceph-${vers}/debian/control.new + mv -v ceph-${vers}/debian/control.new ceph-${vers}/debian/control +fi +# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK + + +( cd ceph-${vers} + DEB_VERSION=$(dpkg-parsechangelog | sed -rne 's,^Version: (.*),\1, p') + BP_VERSION=${DEB_VERSION}${BPTAG} + dch -D $DIST --force-distribution -b -v "$BP_VERSION" "$comment" +) +dpkg-source -b ceph-${vers} + +echo "Building Debian" +cd "$WORKSPACE" +# Before, at this point, this script called the below contents that +# was part of /srv/ceph-buid/build_debs.sh. Now everything is in here, in one +# place, no need to checkout/clone anything. WYSIWYG:: +# +# sudo $bindir/build_debs.sh ./release /srv/debian-base $vers + + +releasedir="./release" +pbuilddir="/srv/debian-base" +cephver=$vers + +start_time=`date` +echo version $cephver + +# This used to live in a *file* on /src/ceph-build. Now it lives here because +# it doesn't make sense to have a file that lives in /srv/ that we then +# concatenate to get its contents. + +dvers=`cat $releasedir/$cephver/debian_version` +echo deb vers $dvers + +# This function used to live as /srv/gen_debian_version.sh +gen_debian_version() { + raw=$1 + dist=$2 + + [ "$dist" = "sid" ] && dver="$raw" + [ "$dist" = "jessie" ] && dver="$raw~bpo80+1" + [ "$dist" = "wheezy" ] && dver="$raw~bpo70+1" + [ "$dist" = "squeeze" ] && dver="$raw~bpo60+1" + [ "$dist" = "lenny" ] && dver="$raw~bpo50+1" + [ "$dist" = "precise" ] && dver="$raw$dist" + [ "$dist" = "saucy" ] && dver="$raw$dist" + [ "$dist" = "trusty" ] && dver="$raw$dist" + + echo $dver +} + +# FIXME this looks exactly like `setup_pbuilder`, we probably don't need this +# or we need to refactor. +sudo pbuilder --clean + +bpvers=`gen_debian_version $dvers $DIST` +echo deb vers $bpvers + +echo building debs for $DIST +if [ `dpkg-architecture -qDEB_BUILD_ARCH` = "i386" ] ; then + # Architecture dependent, independent and source + sudo pbuilder build \ + --distribution $DIST \ + --basetgz $pbuilddir/$DIST.tgz \ + --buildresult $releasedir/$cephver \ + --debbuildopts "-j`grep -c processor /proc/cpuinfo`" \ + $releasedir/$cephver/ceph_$bpvers.dsc +else + # Binary only architecture dependent + sudo pbuilder build \ + --binary-arch \ + --distribution $DIST \ + --basetgz $pbuilddir/$DIST.tgz \ + --buildresult $releasedir/$cephver \ + --debbuildopts "-j`grep -c processor /proc/cpuinfo`" \ + $releasedir/$cephver/ceph_$bpvers.dsc +fi + +# do lintian checks +bpvers=`gen_debian_version $dvers $DIST` +echo lintian checks for $bpvers +echo lintian --allow-root $releasedir/$cephver/*$bpvers*.deb + +echo "Start Time = $start_time" +echo " End Time = $(date)" + + +#Collect Artifacts +mkdir -p dist/debian +cp -a release/$vers/*.changes dist/debian/. +cp -a release/$vers/*.deb dist/debian/. +cp -a release/$vers/*.dsc dist/debian/. +cp -a release/$vers/*.diff.gz dist/debian/. +cp -a release/$vers/*.tar.gz dist/debian/. + +echo "End Date: $(date)" diff --git a/ceph-build-next/build/build_rpm b/ceph-build-next/build/build_rpm new file mode 100644 index 00000000..693783ec --- /dev/null +++ b/ceph-build-next/build/build_rpm @@ -0,0 +1,107 @@ +#!/bin/bash +set -ex + +if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then + exit 0 +fi + +HOST=$(hostname --short) +echo "Building on $(hostname) Date: $(date)" +echo " DIST=${DIST}" +echo " BPTAG=${BPTAG}" +echo " WS=$WORKSPACE" +echo " PWD=$(pwd)" +echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" +echo "*****" +env +echo "*****" + + +vers=`cat ./dist/version` +# create a release directory for ceph-build tools +mkdir -p release +cp -a dist release/${vers} +echo $DIST > release/${vers}/debian_dists +echo "${vers}-1" > release/${vers}/debian_version + +echo "Building RPMs" + +# The below contents ported from /srv/ceph-build/build_rpms.sh :: +# $bindir/build_rpms.sh ./release $vers +# + +releasedir="./release" +cephver=$vers + +# Contents below ported from /srv/ceph-build/get_rpm_dist.sh +# dist=`$bindir/get_rpm_dist.sh` + +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 + ;; + CentOS) + RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` + DIST=el$RELEASE + ;; + Fedora) + RELEASE=`$LSB_RELEASE --short --release` + DIST=fc$RELEASE + ;; + SUSE\ LINUX) + DESC=`$LSB_RELEASE --short --description` + RELEASE=`$LSB_RELEASE --short --release` + case $DESC in + *openSUSE*) + DIST=opensuse$RELEASE + ;; + *Enterprise*) + DIST=sles$RELEASE + ;; + esac + ;; + *) + DIST=unknown + ;; + esac + + echo $DIST +} + +dist=`get_rpm_dist` + +[ -z "$dist" ] && echo no dist && exit 1 +echo dist $dist + +cd $releasedir/$cephver || exit 1 + +# Set up build area +BUILDAREA=./rpm/$dist +mkdir -p ${BUILDAREA}/{SOURCES,SRPMS,SPECS,RPMS,BUILD} +cp -a ceph-*.tar.bz2 ${BUILDAREA}/SOURCES/. +cp -a ceph.spec ${BUILDAREA}/SPECS/. +cp -a rpm/*.patch ${BUILDAREA}/SOURCES/. || true + +# Build RPMs +BUILDAREA=`readlink -fn ${BUILDAREA}` ### rpm wants absolute path +cd ${BUILDAREA}/SPECS +rpmbuild -ba --define "_topdir ${BUILDAREA}" ceph.spec + +echo done + +# Make sure we execute at the top level directory +cd "$WORKSPACE" + +#Collect Artifacts +mkdir -p dist/rpm/${DIST} +mv release/${vers}/rpm/*/SRPMS ./dist/rpm/${DIST}/. +mv release/${vers}/rpm/*/RPMS/* ./dist/rpm/${DIST}/. + +echo "End Date: $(date)" diff --git a/ceph-build-next/build/setup b/ceph-build-next/build/setup new file mode 100644 index 00000000..52ac3a8a --- /dev/null +++ b/ceph-build-next/build/setup @@ -0,0 +1,90 @@ +#!/bin/bash +# +# Ceph distributed storage system +# +# Copyright (C) 2014 Red Hat +# +# Author: Loic Dachary +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +set -ex +HOST=$(hostname --short) +echo "Building on $(hostname) Date: $(date)" +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 + +if test -f /etc/redhat-release ; then + $SUDO yum install -y redhat-lsb-core +fi + +if which apt-get > /dev/null ; then + $SUDO apt-get install -y lsb-release +fi + +# 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 + +# Create the virtualenv +virtualenv venv +. venv/bin/activate + +# Define and ensure the PIP cache +PIP_SDIST_INDEX="$HOME/.cache/pip" +mkdir -p $PIP_SDIST_INDEX + +# The setup for this job ensures that a copy of ceph-build will be available +# for this script + +# Install the package by trying with the cache first, otherwise doing a download only, and then +# trying to install from the cache again. +if ! venv/bin/pip install --find-links="file://$PIP_SDIST_INDEX" --no-index ansible; then + venv/bin/pip install --exists-action=i --download-directory="$PIP_SDIST_INDEX" ansible + venv/bin/pip install --find-links="file://$PIP_SDIST_INDEX" --no-index ansible +fi + +# run ansible to get this current host to meet our requirements, specifying +# a local connection and 'localhost' as the host where to execute +cd "$WORKSPACE/ceph-build/setup/playbooks" +ansible-playbook -i "localhost," -c local setup.yml diff --git a/ceph-build-next/build/setup_pbuilder b/ceph-build-next/build/setup_pbuilder new file mode 100755 index 00000000..f65a8e2a --- /dev/null +++ b/ceph-build-next/build/setup_pbuilder @@ -0,0 +1,75 @@ +#!/bin/sh -x +# This file will set the tgz images needed for pbuilder on a given host. It has +# some hard-coded values like `/srv/debian-base` because it gets built every +# time this file is executed - completely ephemeral. If a Debian host will use +# pbuilder, then it will need this. Since it is not idempotent it makes +# everything a bit slower. ## FIXME ## + +set -e + +# Only run when we are a Debian or Debian-based distro +if test -f /etc/redhat-release ; then + exit 0 +fi + +basedir="/srv/debian-base" + +# Ensure that the basedir directory exists +sudo mkdir -p "$basedir" + +# This used to live in a *file* on /srv/ceph-build as +# /srv/ceph-build/update_pbuilder.sh Now it lives here because it doesn't make +# sense to have a file that lives in /srv/ that we then concatenate to get its +# contents. what. +# By using $DIST we are narrowing down to updating only the distro image we +# need, unlike before where we updated everything on every server on every +# build. + +os="debian" +[ "$DIST" = "precise" ] && os="ubuntu" +[ "$DIST" = "saucy" ] && os="ubuntu" +[ "$DIST" = "trusty" ] && os="ubuntu" + +if [ $os = "debian" ]; then + # We used to consume from an internal mirror + # ("http://apt-mirror.sepia.ceph.com/ftp.us.debian.org/debian") but given + # that it has caused us issues before (e.g. packages out of date) and that + # it currently does not have Jessie we are going to use a public mirror. + mirror="http://www.gtlib.gatech.edu/pub/debian" + othermirror="" +else + mirror="" + othermirror="deb http://apt-mirror.sepia.ceph.com/archive.ubuntu.com/ubuntu $DIST main restricted universe multiverse" +fi + +# ensure that the tgz is valid, otherwise remove it so that it can be recreated +# again +pbuild_tar="$basedir/$DIST.tgz" +is_not_tar=`python -c "exec 'try: import tarfile;print int(not int(tarfile.is_tarfile(\"$pbuild_tar\")))\nexcept IOError: print 1'"` +file_size_kb=`du -k "$pbuild_tar" | cut -f1` + +if $is_not_tar; then + sudo rm -f "$pbuild_tar" +fi + +if [ $file_size_kb -lt 1 ]; then + sudo rm -f "$pbuild_tar" +fi + +sudo pbuilder --clean + +if [ -e $basedir/$DIST.tgz ]; then + echo updating $DIST base.tgz + sudo pbuilder update \ + --basetgz $basedir/$DIST.tgz \ + --distribution $DIST \ + --mirror "$mirror" \ + --othermirror "$othermirror" +else + echo building $DIST base.tgz + sudo pbuilder create \ + --basetgz $basedir/$DIST.tgz \ + --distribution $DIST \ + --mirror "$mirror" \ + --othermirror "$othermirror" +fi diff --git a/ceph-build-next/config/definitions/ceph-build-next.yml b/ceph-build-next/config/definitions/ceph-build-next.yml new file mode 100644 index 00000000..6da1627a --- /dev/null +++ b/ceph-build-next/config/definitions/ceph-build-next.yml @@ -0,0 +1,63 @@ +- job: + name: ceph-build + project-type: matrix + defaults: global + disabled: false + display-name: 'ceph-build' + concurrent: false + block-downstream: false + block-upstream: false + properties: + - github: + url: https://github.com/ceph/ceph + + axes: + - axis: + type: label-expression + name: ARCH + values: + - x86_64 + - axis: + type: label-expression + name: DIST + values: + - jessie + #- wheezy + #- precise + #- trusty + #- centos6.5 + - centos7 + #- rhel6.5 + - rhel7 + + scm: + - git: + url: https://github.com/ceph/ceph-build.git + branches: + - origin/master + timeout: 20 + wipe-workspace: true + + builders: + - shell: | + echo "Cleaning up workarea" + rm -rf dist + rm -rf release + - copyartifact: + project: ceph-setup + filter: 'dist/**' + which-build: last-successful + - shell: + !include-raw ../../build/setup + - shell: + !include-raw ../../build/setup_pbuilder + - shell: + !include-raw ../../build/build_deb + - shell: + !include-raw ../../build/build_rpm + + publishers: + - archive: + artifacts: 'dist/**' + allow-empty: false + latest-only: false diff --git a/ceph-build-next/setup/playbooks/setup.yml b/ceph-build-next/setup/playbooks/setup.yml new file mode 100644 index 00000000..b545ad4f --- /dev/null +++ b/ceph-build-next/setup/playbooks/setup.yml @@ -0,0 +1,8 @@ +--- + +- hosts: localhost + user: jenkins-build + sudo: True + + tasks: + - include: tasks/main.yml diff --git a/ceph-build-next/setup/playbooks/tasks/main.yml b/ceph-build-next/setup/playbooks/tasks/main.yml new file mode 100644 index 00000000..9f2e211a --- /dev/null +++ b/ceph-build-next/setup/playbooks/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- debug: msg="testing" + +#TODO: write ~/.chacractl config file +#TODO: install chacractl from pypi diff --git a/ceph-build/build/build_deb b/ceph-build/build/build_deb deleted file mode 100644 index 4490765e..00000000 --- a/ceph-build/build/build_deb +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/bash -set -ex - -# Only do actual work when we are a DEB distro -if test -f /etc/redhat-release ; then - exit 0 -fi - -get_bptag() { - dist=$1 - - [ "$dist" = "sid" ] && dver="" - [ "$dist" = "jessie" ] && dver="~bpo80+1" - [ "$dist" = "wheezy" ] && dver="~bpo70+1" - [ "$dist" = "squeeze" ] && dver="~bpo60+1" - [ "$dist" = "lenny" ] && dver="~bpo50+1" - [ "$dist" = "trusty" ] && dver="$dist" - [ "$dist" = "saucy" ] && dver="$dist" - [ "$dist" = "precise" ] && dver="$dist" - [ "$dist" = "oneiric" ] && dver="$dist" - [ "$dist" = "natty" ] && dver="$dist" - [ "$dist" = "maverick" ] && dver="$dist" - [ "$dist" = "lucid" ] && dver="$dist" - [ "$dist" = "karmic" ] && dver="$dist" - - echo $dver -} - -BPTAG=`get_bptag $DIST` - -HOST=$(hostname --short) -echo "Building on $(hostname) Date: $(date)" -echo " DIST=${DIST}" -echo " BPTAG=${BPTAG}" -echo " WS=$WORKSPACE" -echo " PWD=$(pwd)" -echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" -echo "*****" -env -echo "*****" - -vers=`cat ./dist/version` -# create a release directory for ceph-build tools -mkdir -p release -cp -a dist release/${vers} -echo $DIST > release/${vers}/debian_dists -echo "${vers}-1" > release/${vers}/debian_version - -cd release/$vers - - -# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK -# FIXME: I don't think we need this 'hack' anymore -# Dirty Hack: -baddist=$(echo $DIST | grep -ic -e squeeze -e wheezy || true) -if [ $baddist -eq 1 ] -then - sed -i 's/ libbabeltrace-ctf-dev, libbabeltrace-dev,//g' ceph_${vers}-1.dsc || true - sed -i 's/ liblttng-ust-dev//g' ceph_${vers}-1.dsc || true - -fi -# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK - - -# unpack sources -dpkg-source -x ceph_${vers}-1.dsc - - -# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK -if [ $baddist -eq 1 ] -then - rm -vf *.orig.tar.gz || true - grep -v babeltrace ceph-${vers}/debian/control | grep -v liblttng > ceph-${vers}/debian/control.new - mv -v ceph-${vers}/debian/control.new ceph-${vers}/debian/control -fi -# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK - - -( cd ceph-${vers} - DEB_VERSION=$(dpkg-parsechangelog | sed -rne 's,^Version: (.*),\1, p') - BP_VERSION=${DEB_VERSION}${BPTAG} - dch -D $DIST --force-distribution -b -v "$BP_VERSION" "$comment" -) -dpkg-source -b ceph-${vers} - -echo "Building Debian" -cd "$WORKSPACE" -# Before, at this point, this script called the below contents that -# was part of /srv/ceph-buid/build_debs.sh. Now everything is in here, in one -# place, no need to checkout/clone anything. WYSIWYG:: -# -# sudo $bindir/build_debs.sh ./release /srv/debian-base $vers - - -releasedir="./release" -pbuilddir="/srv/debian-base" -cephver=$vers - -start_time=`date` -echo version $cephver - -# This used to live in a *file* on /src/ceph-build. Now it lives here because -# it doesn't make sense to have a file that lives in /srv/ that we then -# concatenate to get its contents. - -dvers=`cat $releasedir/$cephver/debian_version` -echo deb vers $dvers - -# This function used to live as /srv/gen_debian_version.sh -gen_debian_version() { - raw=$1 - dist=$2 - - [ "$dist" = "sid" ] && dver="$raw" - [ "$dist" = "jessie" ] && dver="$raw~bpo80+1" - [ "$dist" = "wheezy" ] && dver="$raw~bpo70+1" - [ "$dist" = "squeeze" ] && dver="$raw~bpo60+1" - [ "$dist" = "lenny" ] && dver="$raw~bpo50+1" - [ "$dist" = "precise" ] && dver="$raw$dist" - [ "$dist" = "saucy" ] && dver="$raw$dist" - [ "$dist" = "trusty" ] && dver="$raw$dist" - - echo $dver -} - -# FIXME this looks exactly like `setup_pbuilder`, we probably don't need this -# or we need to refactor. -sudo pbuilder --clean - -bpvers=`gen_debian_version $dvers $DIST` -echo deb vers $bpvers - -echo building debs for $DIST -if [ `dpkg-architecture -qDEB_BUILD_ARCH` = "i386" ] ; then - # Architecture dependent, independent and source - sudo pbuilder build \ - --distribution $DIST \ - --basetgz $pbuilddir/$DIST.tgz \ - --buildresult $releasedir/$cephver \ - --debbuildopts "-j`grep -c processor /proc/cpuinfo`" \ - $releasedir/$cephver/ceph_$bpvers.dsc -else - # Binary only architecture dependent - sudo pbuilder build \ - --binary-arch \ - --distribution $DIST \ - --basetgz $pbuilddir/$DIST.tgz \ - --buildresult $releasedir/$cephver \ - --debbuildopts "-j`grep -c processor /proc/cpuinfo`" \ - $releasedir/$cephver/ceph_$bpvers.dsc -fi - -# do lintian checks -bpvers=`gen_debian_version $dvers $DIST` -echo lintian checks for $bpvers -echo lintian --allow-root $releasedir/$cephver/*$bpvers*.deb - -echo "Start Time = $start_time" -echo " End Time = $(date)" - - -#Collect Artifacts -mkdir -p dist/debian -cp -a release/$vers/*.changes dist/debian/. -cp -a release/$vers/*.deb dist/debian/. -cp -a release/$vers/*.dsc dist/debian/. -cp -a release/$vers/*.diff.gz dist/debian/. -cp -a release/$vers/*.tar.gz dist/debian/. - -echo "End Date: $(date)" diff --git a/ceph-build/build/build_rpm b/ceph-build/build/build_rpm deleted file mode 100644 index 693783ec..00000000 --- a/ceph-build/build/build_rpm +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash -set -ex - -if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then - exit 0 -fi - -HOST=$(hostname --short) -echo "Building on $(hostname) Date: $(date)" -echo " DIST=${DIST}" -echo " BPTAG=${BPTAG}" -echo " WS=$WORKSPACE" -echo " PWD=$(pwd)" -echo " BUILD SOURCE=$COPYARTIFACT_BUILD_NUMBER_CEPH_SETUP" -echo "*****" -env -echo "*****" - - -vers=`cat ./dist/version` -# create a release directory for ceph-build tools -mkdir -p release -cp -a dist release/${vers} -echo $DIST > release/${vers}/debian_dists -echo "${vers}-1" > release/${vers}/debian_version - -echo "Building RPMs" - -# The below contents ported from /srv/ceph-build/build_rpms.sh :: -# $bindir/build_rpms.sh ./release $vers -# - -releasedir="./release" -cephver=$vers - -# Contents below ported from /srv/ceph-build/get_rpm_dist.sh -# dist=`$bindir/get_rpm_dist.sh` - -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 - ;; - CentOS) - RELEASE=`$LSB_RELEASE --short --release | cut -d. -f1` - DIST=el$RELEASE - ;; - Fedora) - RELEASE=`$LSB_RELEASE --short --release` - DIST=fc$RELEASE - ;; - SUSE\ LINUX) - DESC=`$LSB_RELEASE --short --description` - RELEASE=`$LSB_RELEASE --short --release` - case $DESC in - *openSUSE*) - DIST=opensuse$RELEASE - ;; - *Enterprise*) - DIST=sles$RELEASE - ;; - esac - ;; - *) - DIST=unknown - ;; - esac - - echo $DIST -} - -dist=`get_rpm_dist` - -[ -z "$dist" ] && echo no dist && exit 1 -echo dist $dist - -cd $releasedir/$cephver || exit 1 - -# Set up build area -BUILDAREA=./rpm/$dist -mkdir -p ${BUILDAREA}/{SOURCES,SRPMS,SPECS,RPMS,BUILD} -cp -a ceph-*.tar.bz2 ${BUILDAREA}/SOURCES/. -cp -a ceph.spec ${BUILDAREA}/SPECS/. -cp -a rpm/*.patch ${BUILDAREA}/SOURCES/. || true - -# Build RPMs -BUILDAREA=`readlink -fn ${BUILDAREA}` ### rpm wants absolute path -cd ${BUILDAREA}/SPECS -rpmbuild -ba --define "_topdir ${BUILDAREA}" ceph.spec - -echo done - -# Make sure we execute at the top level directory -cd "$WORKSPACE" - -#Collect Artifacts -mkdir -p dist/rpm/${DIST} -mv release/${vers}/rpm/*/SRPMS ./dist/rpm/${DIST}/. -mv release/${vers}/rpm/*/RPMS/* ./dist/rpm/${DIST}/. - -echo "End Date: $(date)" diff --git a/ceph-build/build/setup b/ceph-build/build/setup deleted file mode 100644 index 52ac3a8a..00000000 --- a/ceph-build/build/setup +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -# -# Ceph distributed storage system -# -# Copyright (C) 2014 Red Hat -# -# Author: Loic Dachary -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -set -ex -HOST=$(hostname --short) -echo "Building on $(hostname) Date: $(date)" -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 - -if test -f /etc/redhat-release ; then - $SUDO yum install -y redhat-lsb-core -fi - -if which apt-get > /dev/null ; then - $SUDO apt-get install -y lsb-release -fi - -# 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 - -# Create the virtualenv -virtualenv venv -. venv/bin/activate - -# Define and ensure the PIP cache -PIP_SDIST_INDEX="$HOME/.cache/pip" -mkdir -p $PIP_SDIST_INDEX - -# The setup for this job ensures that a copy of ceph-build will be available -# for this script - -# Install the package by trying with the cache first, otherwise doing a download only, and then -# trying to install from the cache again. -if ! venv/bin/pip install --find-links="file://$PIP_SDIST_INDEX" --no-index ansible; then - venv/bin/pip install --exists-action=i --download-directory="$PIP_SDIST_INDEX" ansible - venv/bin/pip install --find-links="file://$PIP_SDIST_INDEX" --no-index ansible -fi - -# run ansible to get this current host to meet our requirements, specifying -# a local connection and 'localhost' as the host where to execute -cd "$WORKSPACE/ceph-build/setup/playbooks" -ansible-playbook -i "localhost," -c local setup.yml diff --git a/ceph-build/build/setup_pbuilder b/ceph-build/build/setup_pbuilder deleted file mode 100755 index f65a8e2a..00000000 --- a/ceph-build/build/setup_pbuilder +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -x -# This file will set the tgz images needed for pbuilder on a given host. It has -# some hard-coded values like `/srv/debian-base` because it gets built every -# time this file is executed - completely ephemeral. If a Debian host will use -# pbuilder, then it will need this. Since it is not idempotent it makes -# everything a bit slower. ## FIXME ## - -set -e - -# Only run when we are a Debian or Debian-based distro -if test -f /etc/redhat-release ; then - exit 0 -fi - -basedir="/srv/debian-base" - -# Ensure that the basedir directory exists -sudo mkdir -p "$basedir" - -# This used to live in a *file* on /srv/ceph-build as -# /srv/ceph-build/update_pbuilder.sh Now it lives here because it doesn't make -# sense to have a file that lives in /srv/ that we then concatenate to get its -# contents. what. -# By using $DIST we are narrowing down to updating only the distro image we -# need, unlike before where we updated everything on every server on every -# build. - -os="debian" -[ "$DIST" = "precise" ] && os="ubuntu" -[ "$DIST" = "saucy" ] && os="ubuntu" -[ "$DIST" = "trusty" ] && os="ubuntu" - -if [ $os = "debian" ]; then - # We used to consume from an internal mirror - # ("http://apt-mirror.sepia.ceph.com/ftp.us.debian.org/debian") but given - # that it has caused us issues before (e.g. packages out of date) and that - # it currently does not have Jessie we are going to use a public mirror. - mirror="http://www.gtlib.gatech.edu/pub/debian" - othermirror="" -else - mirror="" - othermirror="deb http://apt-mirror.sepia.ceph.com/archive.ubuntu.com/ubuntu $DIST main restricted universe multiverse" -fi - -# ensure that the tgz is valid, otherwise remove it so that it can be recreated -# again -pbuild_tar="$basedir/$DIST.tgz" -is_not_tar=`python -c "exec 'try: import tarfile;print int(not int(tarfile.is_tarfile(\"$pbuild_tar\")))\nexcept IOError: print 1'"` -file_size_kb=`du -k "$pbuild_tar" | cut -f1` - -if $is_not_tar; then - sudo rm -f "$pbuild_tar" -fi - -if [ $file_size_kb -lt 1 ]; then - sudo rm -f "$pbuild_tar" -fi - -sudo pbuilder --clean - -if [ -e $basedir/$DIST.tgz ]; then - echo updating $DIST base.tgz - sudo pbuilder update \ - --basetgz $basedir/$DIST.tgz \ - --distribution $DIST \ - --mirror "$mirror" \ - --othermirror "$othermirror" -else - echo building $DIST base.tgz - sudo pbuilder create \ - --basetgz $basedir/$DIST.tgz \ - --distribution $DIST \ - --mirror "$mirror" \ - --othermirror "$othermirror" -fi diff --git a/ceph-build/config/definitions/ceph-build.yml b/ceph-build/config/definitions/ceph-build.yml deleted file mode 100644 index 6da1627a..00000000 --- a/ceph-build/config/definitions/ceph-build.yml +++ /dev/null @@ -1,63 +0,0 @@ -- job: - name: ceph-build - project-type: matrix - defaults: global - disabled: false - display-name: 'ceph-build' - concurrent: false - block-downstream: false - block-upstream: false - properties: - - github: - url: https://github.com/ceph/ceph - - axes: - - axis: - type: label-expression - name: ARCH - values: - - x86_64 - - axis: - type: label-expression - name: DIST - values: - - jessie - #- wheezy - #- precise - #- trusty - #- centos6.5 - - centos7 - #- rhel6.5 - - rhel7 - - scm: - - git: - url: https://github.com/ceph/ceph-build.git - branches: - - origin/master - timeout: 20 - wipe-workspace: true - - builders: - - shell: | - echo "Cleaning up workarea" - rm -rf dist - rm -rf release - - copyartifact: - project: ceph-setup - filter: 'dist/**' - which-build: last-successful - - shell: - !include-raw ../../build/setup - - shell: - !include-raw ../../build/setup_pbuilder - - shell: - !include-raw ../../build/build_deb - - shell: - !include-raw ../../build/build_rpm - - publishers: - - archive: - artifacts: 'dist/**' - allow-empty: false - latest-only: false diff --git a/ceph-build/setup/playbooks/setup.yml b/ceph-build/setup/playbooks/setup.yml deleted file mode 100644 index b545ad4f..00000000 --- a/ceph-build/setup/playbooks/setup.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -- hosts: localhost - user: jenkins-build - sudo: True - - tasks: - - include: tasks/main.yml diff --git a/ceph-build/setup/playbooks/tasks/main.yml b/ceph-build/setup/playbooks/tasks/main.yml deleted file mode 100644 index 9f2e211a..00000000 --- a/ceph-build/setup/playbooks/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- debug: msg="testing" - -#TODO: write ~/.chacractl config file -#TODO: install chacractl from pypi