2014-01-30 03:54:24 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
2014-11-02 15:18:07 +08:00
|
|
|
default_args="verify '-Ddisable.shadepackage'"
|
|
|
|
|
mvn_args="${default_args}"
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_properties=
|
|
|
|
|
mvn_clean=
|
|
|
|
|
unknown_args=
|
|
|
|
|
property_regex='-D(.*)=(.*)'
|
|
|
|
|
unit_test_regex='.*UnitTest'
|
|
|
|
|
post_script=
|
2014-02-01 11:27:25 +08:00
|
|
|
run_type="run"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
|
|
|
|
for arg in "${@}" ; do
|
2014-02-01 11:27:25 +08:00
|
|
|
if [[ "${arg}" == "dry" ]] ; then
|
|
|
|
|
run_type="dry"
|
|
|
|
|
|
|
|
|
|
elif [[ "${arg}" == "clean" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_clean="clean"
|
|
|
|
|
mvn_args=
|
|
|
|
|
|
|
|
|
|
elif [[ "${arg}" =~ ${property_regex} ]] ; then
|
|
|
|
|
property_name=${BASH_REMATCH[1]}
|
|
|
|
|
property_value=${BASH_REMATCH[2]}
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
if [[ "${property_name}" == "single" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
test_property="test"
|
|
|
|
|
test_disabled="it.test"
|
|
|
|
|
if [[ ! "${property_value}" =~ ${unit_test_regex} ]] ; then
|
|
|
|
|
test_property="it.test"
|
|
|
|
|
test_disabled="test"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
mvn_properties="${mvn_properties} -D${test_disabled}=disabled -D${test_property}=${property_value}"
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${property_name}" == "test.debug.port" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_properties="${mvn_properties} -Dmaven.surefire.debug=\"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${property_value}\""
|
2014-02-06 01:17:26 +08:00
|
|
|
mvn_properties="${mvn_properties} -Dmaven.failsafe.debug=\"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${property_value}\""
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${property_name}" == "test.default.maxmemory" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_properties="${mvn_properties} -Dtest.maxmemory=${property_value}"
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
unknown_args="${unknown_args} \"${arg}\""
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
else
|
2014-11-02 15:18:07 +08:00
|
|
|
if [[ "${arg}" != "dist" && "${mvn_args}" != "" && "${mvn_args}" != "${default_args}" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
echo "Sorry, this script does not currently support mixing targets." >&2
|
|
|
|
|
exit 1
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "dist" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args}"
|
2014-02-01 05:02:08 +08:00
|
|
|
|
2014-02-04 01:54:20 +08:00
|
|
|
elif [[ "${arg}" == "gatk" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} '-P!queue'"
|
2014-02-04 01:54:20 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "test.compile" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="test-compile"
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "gatkdocs" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
local_repo="sitetemprepo"
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="install -Dmaven.repo.local=${local_repo} '-P!queue' && mvn site -Dmaven.repo.local=${local_repo} '-P!queue'"
|
|
|
|
|
mvn_pkg_args=
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "package.gatk.full" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="package '-P!private,!queue'"
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "package.gatk.all" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="package '-P!queue'"
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "package.queue.full" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="package '-P!private'"
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "package.queue.all" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="package"
|
|
|
|
|
|
2014-02-04 01:54:20 +08:00
|
|
|
# elif [[ "${arg}" == "release.gatk.full" ]] ; then
|
|
|
|
|
# mvn_args="package '-P!private,!queue'"
|
2014-11-02 15:18:07 +08:00
|
|
|
# post_script=" && private/src/main/scripts/shell/copy_release.sh protected/gatk-package-distribution/target/GenomeAnalysisTK-*.tar.bz2"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-04 01:54:20 +08:00
|
|
|
# elif [[ "${arg}" == "release.queue.full" ]] ; then
|
|
|
|
|
# mvn_args="package '-P!private'"
|
2014-11-02 15:18:07 +08:00
|
|
|
# post_script=" && private/src/main/scripts/shell/copy_release.sh protected/gatk-queue-package-distribution/target/Queue-*.tar.bz2"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "build-picard-private" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_args="mvn install -f private/picard-maven/pom.xml"
|
|
|
|
|
|
|
|
|
|
# TODO: clover support
|
|
|
|
|
# see ant and maven docs for clover:
|
|
|
|
|
# https://confluence.atlassian.com/display/CLOVER/1.+QuickStart+Guide
|
|
|
|
|
# https://confluence.atlassian.com/display/CLOVER/Clover-for-Maven+2+and+3+User%27s+Guide
|
|
|
|
|
#
|
2014-02-01 11:27:25 +08:00
|
|
|
#elif [[ "${arg}" == "clover.report" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
# mvn_args=...
|
|
|
|
|
#
|
2014-02-01 11:27:25 +08:00
|
|
|
#elif [[ "${arg}" == "with.clover" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
# mvn_args=...
|
|
|
|
|
|
|
|
|
|
# TODO: This runs *all* commit tests, including the few on Queue.
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "gatkfull.binary.release.tests" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
local_repo="sitetemprepo"
|
2014-01-30 17:47:54 +08:00
|
|
|
mvn_args="install -Dmaven.repo.local=${local_repo} && mvn verify"
|
2014-02-06 01:17:26 +08:00
|
|
|
mvn_args="${mvn_args} -Dmaven.repo.local=${local_repo}"
|
2014-03-05 00:10:36 +08:00
|
|
|
mvn_args="${mvn_args} -Dgatk.packagetests.enabled=true"
|
|
|
|
|
mvn_args="${mvn_args} -Dgatk.packagecommittests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-03-11 03:20:47 +08:00
|
|
|
# TODO: This runs only the queue tests (full, non-dry run), but not the commit tests for Queue.
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "queuefull.binary.release.tests" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
local_repo="sitetemprepo"
|
2014-01-30 17:47:54 +08:00
|
|
|
mvn_args="install -Dmaven.repo.local=${local_repo} && mvn verify"
|
2014-02-06 01:17:26 +08:00
|
|
|
mvn_args="${mvn_args} -Dmaven.repo.local=${local_repo}"
|
2014-03-05 00:10:36 +08:00
|
|
|
mvn_args="${mvn_args} -Dgatk.packagetests.enabled=true"
|
|
|
|
|
mvn_args="${mvn_args} -Dgatk.packagequeuetests.skipped=false"
|
|
|
|
|
mvn_args="${mvn_args} -Dgatk.queuetests.run=true"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "committests" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.committests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "test" ]] ; then
|
2014-03-05 00:10:36 +08:00
|
|
|
mvn_args="test -Dgatk.unittests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "unittest" ]] ; then
|
2014-03-05 00:10:36 +08:00
|
|
|
mvn_args="test -Dgatk.unittests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "integrationtest" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.integrationtests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "largescaletest" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.largescaletests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-12 03:03:26 +08:00
|
|
|
elif [[ "${arg}" == "knowledgebasetest" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.knowledgebasetests.skipped=false"
|
2014-02-12 03:03:26 +08:00
|
|
|
|
2014-03-11 03:20:47 +08:00
|
|
|
elif [[ "${arg}" == "queuetest" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.queuetests.skipped=false"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-03-11 03:20:47 +08:00
|
|
|
elif [[ "${arg}" == "queuetestrun" ]] ; then
|
2014-11-02 15:18:07 +08:00
|
|
|
mvn_args="${default_args} -Dgatk.queuetests.skipped=false -Dgatk.queuetests.run=true"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
elif [[ "${arg}" == "fasttest" ]] ; then
|
2014-03-05 00:10:36 +08:00
|
|
|
mvn_args="verify -Dgatk.committests.skipped=false -pl private/gatk-tools-private -am -Dresource.bundle.skip=true"
|
2014-01-30 03:54:24 +08:00
|
|
|
|
|
|
|
|
else
|
|
|
|
|
unknown_args="${unknown_args} \"${arg}\""
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
mvn_cmd=
|
2014-02-01 11:27:25 +08:00
|
|
|
if [[ "${mvn_clean}" != "" ]] ; then
|
|
|
|
|
if [[ "${mvn_args}" != "" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
mvn_cmd="mvn ${mvn_clean} && mvn ${mvn_args}"
|
|
|
|
|
else
|
|
|
|
|
mvn_cmd="mvn ${mvn_clean}"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
mvn_cmd="mvn ${mvn_args}"
|
|
|
|
|
fi
|
|
|
|
|
|
2014-02-01 11:27:25 +08:00
|
|
|
if [[ "${unknown_args}" != "" ]] ; then
|
2014-01-30 03:54:24 +08:00
|
|
|
echo "Unrecognized arguments:${unknown_args}" >&2
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
echo "Equivalent maven command"
|
|
|
|
|
echo "${mvn_cmd}${mvn_properties}${post_script}"
|
2014-02-01 11:27:25 +08:00
|
|
|
|
|
|
|
|
if [[ "${run_type}" != "dry" ]] ; then
|
|
|
|
|
sh -c "${mvn_cmd}${mvn_properties}${post_script}"
|
|
|
|
|
fi
|
2014-01-30 03:54:24 +08:00
|
|
|
|
|
|
|
|
fi
|