HBASE-14220 nightly check that we can build a source tarball.
Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
parent
04424ad65f
commit
2a717459bd
|
@ -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.8 (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 {
|
post {
|
||||||
failure {
|
failure {
|
||||||
|
|
Loading…
Reference in New Issue