Repository: hbase Updated Branches: refs/heads/HBASE-14220 c0058a65f -> 237047355 (forced update)
HBASE-14220 nightly check that we can build a source tarball. Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/23704735 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/23704735 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/23704735 Branch: refs/heads/HBASE-14220 Commit: 2370473558392778a1106311790cb9293894b121 Parents: 73b1ec3 Author: Sean Busbey <bus...@apache.org> Authored: Mon Jul 31 01:08:16 2017 -0500 Committer: Sean Busbey <bus...@apache.org> Committed: Mon Jul 31 01:31:59 2017 -0500 ---------------------------------------------------------------------- dev-support/Jenkinsfile | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/23704735/dev-support/Jenkinsfile ---------------------------------------------------------------------- diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile index 7c74492..1ac88d6 100644 --- a/dev-support/Jenkinsfile +++ b/dev-support/Jenkinsfile @@ -241,6 +241,59 @@ curl -L -o personality.sh "${env.PROJET_PERSONALITY}" } } } + // This is meant to mimic what a release manager will do to create RCs. + // See http://hbase.apache.org/book.html#maven.release + stage ('create source tarball') { + tools { + maven 'Maven (latest)' + } + steps { + dir ("component") { + sh '''#!/bin/bash -e + echo "Clean..." + mvn -DskipTests clean + echo "Step 3 Build the source tarball" + mvn -Prelease -Dmaven.repo.local="${WORKSPACE}/.m2-for-repo" install -DskipTests assembly:single -Dassembly.file=hbase-assembly/src/main/assembly/src.xml +''' + } + dir ("unpacked_src_tarball") { + sh '''#!/bin/bash -e + echo "Unpack the source tarball + tar --strip-components=1 -xzf ../component/hbase-assembly/target/hbase-*-src.tar.gz + echo "Building from source artifact." + mvn -DskipTests -Prelease -Dmaven.repo.local="${WORKSPACE}/.m2-for-src" clean install assembly:single + echo "Clean up after checking ability to build." + mvn -DskipTests clean +''' + } + dir ("component") { + sh '''#!/bin/bash -e + echo "Clean up the source checkout" + mvn -DskipTests clean + echo "Diff against source tree" + diff --binary --recursive . ../unpacked_src_tarball >../diff_output || true +''' + } + // expectation check largely based on HBASE-14952 + sh '''#!/bin/bash -e + echo "Checking against things we don't expect to include in the source tarball (git related, hbase-native-client, etc.)" + cat >known_excluded <<END +Only in .: .git +Only in .: .gitattributes +Only in .: .gitignore +Only in .: hbase-native-client +END + if ! diff known_excluded diff_output >/dev/null ; then + echo "Any output here are unexpected differences between the source artifact we'd make for an RC and the current branch." + echo "The expected differences are on the < side and the current differences are on the > side." + echo "In a given set of differences, '.' refers to the branch in the repo and 'unpacked_src_tarball' refers to what we pulled out of the tarball." + diff known_excluded diff_output + else + echo "Everything looks as expected." + fi +''' + } + } } post { failure {