You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2017/08/08 23:02:33 UTC
[2/4] hbase git commit: HBASE-14220 nightly check that we can build a
source tarball.
HBASE-14220 nightly check that we can build a source tarball.
Signed-off-by: Michael Stack <st...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/36f5e60b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/36f5e60b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/36f5e60b
Branch: refs/heads/branch-1.4
Commit: 36f5e60bc5c5a0e0e54a63b63065b48bf0a783a8
Parents: ef51f2c
Author: Sean Busbey <bu...@apache.org>
Authored: Mon Jul 31 01:08:16 2017 -0500
Committer: Andrew Purtell <ap...@apache.org>
Committed: Tue Aug 8 16:00:33 2017 -0700
----------------------------------------------------------------------
dev-support/Jenkinsfile | 56 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/36f5e60b/dev-support/Jenkinsfile
----------------------------------------------------------------------
diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile
index b5c7660..cdb62b9 100644
--- a/dev-support/Jenkinsfile
+++ b/dev-support/Jenkinsfile
@@ -241,6 +241,62 @@ 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)'
+ // this needs to be set to the jdk that ought to be used to build releases on the branch the Jenkinsfile is stored in.
+ jdk "JDK 1.7 (latest)"
+ }
+ steps {
+ sh 'mvn --version --offline'
+ dir ("component") {
+ sh '''#!/bin/bash -e
+ echo "Clean..."
+ mvn --batch-mode -DskipTests clean
+ echo "Step 3 Build the source tarball"
+ mvn -Prelease --batch-mode -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 --batch-mode -Dmaven.repo.local="${WORKSPACE}/.m2-for-src" clean install assembly:single
+ echo "Clean up after checking ability to build."
+ mvn -DskipTests --batch-mode clean
+'''
+ }
+ dir ("component") {
+ sh '''#!/bin/bash -e
+ echo "Clean up the source checkout"
+ mvn -DskipTests --batch-mode 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 {