This is an automated email from the ASF dual-hosted git repository.
iwasakims pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bigtop.git
The following commit(s) were added to refs/heads/master by this push:
new f92933b3 BIGTOP-3801. Add maven cache volume for docker provisioner
(#999)
f92933b3 is described below
commit f92933b35e33db9759dc057058a82d9084fe5e85
Author: Leona Yoda <[email protected]>
AuthorDate: Sat Sep 3 16:49:08 2022 +0900
BIGTOP-3801. Add maven cache volume for docker provisioner (#999)
---
bigtop-ci/build.sh | 22 +++++++++++++++++++++-
packages.gradle | 8 +++++++-
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/bigtop-ci/build.sh b/bigtop-ci/build.sh
index 51f901c5..f1d829fc 100755
--- a/bigtop-ci/build.sh
+++ b/bigtop-ci/build.sh
@@ -17,7 +17,7 @@
BIGTOP_HOME=`cd $(dirname $0)/.. && pwd`
usage() {
- echo "usage build.sh --prefix trunk|1.4.0|1.3.0|... --os
debian-10|centos-7|... --target hadoop|tez|... [--nexus] [--docker-run-option
...]"
+ echo "usage build.sh --prefix trunk|1.4.0|1.3.0|... --os
debian-10|centos-7|... --target hadoop|tez|... [--nexus] [--mvn-cache-volume
true|false] [--docker-run-option ...]"
exit 1 # unknown option
}
@@ -46,6 +46,10 @@ case $key in
CONFIGURE_NEXUS="configure-nexus"
shift
;;
+ --mvn-cache-volume)
+ MVN_CACHE_VOLUME="$2"
+ shift
+ ;;
--docker-run-option)
DOCKER_RUN_OPTION="$2"
shift
@@ -75,6 +79,22 @@ if [ "x86_64" != $ARCH ]; then
IMAGE_NAME=$IMAGE_NAME-$ARCH
fi
+# Add / Delete named volume for maven cache
+MVN_CACHE_VOLUME_NAME="bigtop-mvn-cache-${OS}"
+if [ "${MVN_CACHE_VOLUME}" == "true" ]; then
+ # Create volume and change the ownership if the volume does not exsit
+ if [ -z "$(docker volume ls -q -f name=${MVN_CACHE_VOLUME_NAME})" ]; then
+ docker volume create $MVN_CACHE_VOLUME_NAME
+ docker run --rm \
+ -v ${MVN_CACHE_VOLUME_NAME}:/var/lib/jenkins/.m2 \
+ --name bigtop-mvn-cache-init $IMAGE_NAME \
+ chown -R jenkins:jenkins /var/lib/jenkins/.m2
+ fi
+ DOCKER_RUN_OPTION="${DOCKER_RUN_OPTION} -v
${MVN_CACHE_VOLUME_NAME}:/var/lib/jenkins/.m2"
+elif [ "${MVN_CACHE_VOLUME}" == "false" ]; then
+ docker volume rm --force $MVN_CACHE_VOLUME_NAME
+fi
+
# Start up build container
CONTAINER_ID=`docker run -d $DOCKER_RUN_OPTION $NEXUS $IMAGE_NAME /sbin/init`
trap "docker rm -f $CONTAINER_ID" EXIT
diff --git a/packages.gradle b/packages.gradle
index ae1781fa..ed51e647 100644
--- a/packages.gradle
+++ b/packages.gradle
@@ -651,7 +651,8 @@ def genTasks = { target ->
description: "Invoking a native binary packaging for $target in
Docker. Usage: \$ ./gradlew " +
"-POS=[centos-7|fedora-35|debian-10|ubuntu-18.04] " +
"-Pprefix=[trunk|1.4.0|1.3.0|1.2.1|...] $target-pkg-ind " +
- "-Pnexus=[true|false]",
+ "-Pnexus=[true|false]" +
+ "[-Pmvn-cache-volume=[true|false]]",
group: PACKAGES_GROUP) doLast {
def _prefix = project.hasProperty("prefix") ? prefix : "trunk"
def _OS = project.hasProperty("OS") ? OS : "centos-7"
@@ -659,6 +660,7 @@ def genTasks = { target ->
logger.warn(_OS + ' requires privileged mode, pass
`-Pdocker-run-option="--privileged"` to gradle option')
}
def _target_pkg = "$target-pkg"
+ def _mvn_cache_volume = project.hasProperty("mvn-cache-volume") ?
this.'mvn-cache-volume' : ""
def _docker_run_option = project.hasProperty("docker-run-option") ?
this.'docker-run-option' : ""
def additionalConfigKeys = ['git_repo', 'git_ref', 'git_dir',
'git_commit_hash', 'base_version']
additionalConfigKeys.each { key ->
@@ -677,6 +679,10 @@ def genTasks = { target ->
if ( project.hasProperty("nexus") ) {
command.add('--nexus')
}
+ if ( project.hasProperty("mvn-cache-volume") ) {
+ command.add('--mvn-cache-volume')
+ command.add(_mvn_cache_volume)
+ }
println "Building $_prefix $_target_pkg on $_OS in Docker...\n"