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 {
|
||||
failure {
|
||||
|
|
Loading…
Reference in New Issue