--- /dev/null
+#!/bin/bash -ex
+
+BRANCH=`branch_slash_filter $BRANCH`
+SHA1=${GIT_COMMIT}
+
+# split on '/' to get just 'wip-mybranch' when input is like: origin/wip-mybranch
+
+HOST=$(hostname --short)
+echo "Building on ${HOST}"
+echo " DIST=${DIST}"
+echo " BPTAG=${BPTAG}"
+echo " WS=$WORKSPACE"
+echo " PWD=$(pwd)"
+echo " BRANCH=$BRANCH"
+echo " SHA1=$GIT_COMMIT"
+
+if [ -x "$BRANCH" ] ; then
+ echo "No git branch was supplied"
+ exit 1
+fi
+
+echo "Building version $(git describe) Branch $BRANCH"
+
+rm -rf dist
+rm -rf release
+
+# fix version/release. Hack needed only for the spec
+# file for rc candidates.
+#export force=force
+#sed -i 's/^Version:.*/Version: 0.80/' ceph.spec.in
+#sed -i 's/^Release:.*/Release: rc1%{?dist}/' ceph.spec.in
+#sed -i 's/^Source0:.*/Source0: http:\/\/ceph.com\/download\/%{name}-%{version}-rc1.tar.bz2/' ceph.spec.in
+#sed -i 's/^%setup.*/%setup -q -n %{name}-%{version}-rc1/' ceph.spec.in
+
+# because autogen+configure will check for dependencies, we are forced to install them
+# and ensure they are present in the current host
+if [ -x install-deps.sh ]; then
+ echo "Ensuring dependencies are installed"
+ ./install-deps.sh
+fi
+
+# run submodule updates regardless
+echo "Running submodule update ..."
+git submodule update --init
+
+# Flavor Builds support
+
+#cryptopp is not default for CMake
+AUTOCONF_FLAVOR_FLAGS="--without-cryptopp"
+
+if [ "${FLAVOR}" == "notcmalloc" ]
+then
+ echo "Detected notcmalloc flavor: will use flag: --without-tcmalloc or -DALLOCATOR=libc"
+ AUTOCONF_FLAVOR_FLAGS="$AUTOCONF_FLAVOR_FLAGS --without-tcmalloc"
+ export CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS -DALLOCATOR=libc"
+else
+ AUTOCONF_FLAVOR_FLAGS="$AUTOCONF_FLAVOR_FLAGS --with-tcmalloc"
+ export CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS -DALLOCATOR=tcmalloc"
+fi
+
+
+# make-dist does not exist for autotools builds
+if [ ! -x make-dist ]; then
+ echo "Using autotools build system"
+ echo "Running autogen.sh ..."
+ ./autogen.sh
+ echo "Running configure ..."
+ ./configure \
+ --disable-option-checking \
+ '--prefix=/usr' \
+ '--sbindir=/sbin' \
+ '--localstatedir=/var' \
+ '--sysconfdir=/etc' \
+ '--with-debug' \
+ '--with-nss' \
+ '--with-radosgw' \
+ '--disable-static' \
+ '--without-lttng' \
+ $AUTOCONF_FLAVOR_FLAGS \
+ 'CFLAGS= -Wno-unused-parameter' \
+ 'CXXFLAGS= -Wno-unused-parameter' \
+ --cache-file=/dev/null \
+ --srcdir=.
+fi
+
+mkdir -p release
+
+# Contents below used to come from /srv/release_tarball.sh and
+# was called like::
+#
+# $bindir/release_tarball.sh release release/version
+
+releasedir='release'
+versionfile='release/version'
+
+if git diff --quiet ; then
+ echo repository is clean
+else
+ echo
+ echo "**** REPOSITORY IS DIRTY ****"
+ echo
+ git diff
+ if [ "$force" != "force" ]; then
+ echo "add 'force' argument if you really want to continue."
+ exit 1
+ fi
+ echo "forcing."
+fi
+
+cephver=`git describe --match "v*" | sed s/^v//`
+echo current version $cephver
+
+srcdir=`pwd`
+
+if [ -d "$releasedir/$cephver" ]; then
+ echo "$releasedir/$cephver already exists; reuse that release tarball"
+else
+ dch -v $cephver-1 'autobuilder'
+
+ echo building tarball
+ rm ceph-*.tar.gz || true
+ rm ceph-*.tar.bz2 || true
+
+ if [ -x make-dist ]
+ then
+ ./make-dist $cephver
+ vers=`ls ceph-*.tar.bz2 | cut -c 6- | sed 's/.tar.bz2//'`
+ extension="tar.bz2"
+ extract_flags="jxf"
+ compress_flags="jcf"
+ else
+ make dist
+ make dist-bzip2
+ vers=`ls ceph-*.tar.gz | cut -c 6- | sed 's/.tar.gz//'`
+ extension="tar.gz"
+ extract_flags="zxf"
+ compress_flags="zcf"
+ fi
+
+ echo tarball vers $vers
+
+ echo extracting
+ mkdir -p $releasedir/$cephver/rpm
+ cp rpm/*.patch $releasedir/$cephver/rpm || true
+ cd $releasedir/$cephver
+
+ tar $extract_flags $srcdir/ceph-$vers.$extension
+
+ [ "$vers" != "$cephver" ] && mv ceph-$vers ceph-$cephver
+
+ tar zcf ceph_$cephver.orig.tar.gz ceph-$cephver
+ cp -a ceph_$cephver.orig.tar.gz ceph-$cephver.tar.gz
+
+ tar jcf ceph-$cephver.tar.bz2 ceph-$cephver
+
+ # copy debian dir, too. Prevent errors with `true` when using cmake
+ cp -a $srcdir/debian debian || true
+ cd $srcdir
+
+ # copy in spec file, too. If using cmake, the spec file
+ # will already exist.
+ cp ceph.spec $releasedir/$cephver || true
+fi
+
+
+if [ -n "$versionfile" ]; then
+ echo $cephver > $versionfile
+ echo "wrote $cephver to $versionfile"
+fi
+
+vers=`cat release/version`
+
+
+(
+ cd release/$vers
+ mkdir -p ceph-$vers/debian
+ cp -r debian/* ceph-$vers/debian/
+ dpkg-source -b ceph-$vers
+)
+
+mkdir -p dist
+# Debian Source Files
+mv release/$vers/*.dsc dist/.
+mv release/$vers/*.diff.gz dist/. || true
+mv release/$vers/*.orig.tar.gz dist/.
+# RPM Source Files
+mkdir -p dist/rpm/
+mv release/$vers/rpm/*.patch dist/rpm/ || true
+mv release/$vers/ceph.spec dist/.
+mv release/$vers/*.tar.* dist/.
+# Parameters
+mv release/version dist/.
+
+cat > dist/sha1 << EOF
+SHA1=${GIT_COMMIT}
+EOF
+
+cat > dist/branch << EOF
+BRANCH=${BRANCH}
+EOF
+
+cat > dist/other_envvars << EOF
+CEPH_EXTRA_CMAKE_ARGS=${CEPH_EXTRA_CMAKE_ARGS}
+EOF
--- /dev/null
+- job:
+ name: ceph-dev-setup-new
+ description: "This job step checks out the branch and builds the tarballs, diffs, and dsc that are passed to the ceph-dev-build step.\r\n\r\nNotes:\r\nJob needs to run on a releatively recent debian system. The Restrict where run feature is used to specifiy an appropriate label.\r\nThe clear workspace before checkout box for the git plugin is used."
+ # we do not need to pin this to trusty anymore for the new jenkins instance
+ # FIXME: unpin when this gets ported over
+ node: huge && trusty && x86_64
+ display-name: 'ceph-dev-setup-new'
+ logrotate:
+ daysToKeep: -1
+ numToKeep: 25
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+ block-downstream: false
+ block-upstream: false
+ concurrent: true
+ properties:
+ - github:
+ url: https://github.com/ceph/ceph-ci
+
+ parameters:
+ - string:
+ name: BRANCH
+ description: "The git branch (or tag) to build"
+
+ scm:
+ - git:
+ url: git@github.com:ceph/ceph-ci.git
+ # Use the SSH key attached to the ceph-jenkins GitHub account.
+ credentials-id: '39fa150b-b2a1-416e-b334-29a9a2c0b32d'
+ branches:
+ - $BRANCH
+ skip-tag: true
+ wipe-workspace: true
+
+ builders:
+ - shell:
+ !include-raw:
+ - ../../../scripts/build_utils.sh
+ - ../../build/build
+
+ publishers:
+ - archive:
+ artifacts: 'dist/**'
+ allow-empty: false
+ latest-only: false
+
+ - postbuildscript:
+ script-only-if-failed: True
+ script-only-if-succeeded: False
+ builders:
+ - shell:
+ !include-raw:
+ - ../../../scripts/build_utils.sh
+ - ../../build/failure
+
+ wrappers:
+ - inject-passwords:
+ global: true
+ mask-password-params: true