Created
August 1, 2012 16:41
-
-
Save PerilousApricot/3228599 to your computer and use it in GitHub Desktop.
wmcore-unittests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version='1.0' encoding='UTF-8'?> | |
<matrix-project> | |
<actions/> | |
<description></description> | |
<logRotator> | |
<daysToKeep>30</daysToKeep> | |
<numToKeep>-1</numToKeep> | |
<artifactDaysToKeep>-1</artifactDaysToKeep> | |
<artifactNumToKeep>-1</artifactNumToKeep> | |
</logRotator> | |
<keepDependencies>false</keepDependencies> | |
<properties> | |
<com.coravy.hudson.plugins.github.GithubProjectProperty> | |
<projectUrl>https://github.com/dmwm/WMCore/</projectUrl> | |
</com.coravy.hudson.plugins.github.GithubProjectProperty> | |
<hudson.model.ParametersDefinitionProperty> | |
<parameterDefinitions> | |
<hudson.model.TextParameterDefinition> | |
<name>WMAGENT_VERSION</name> | |
<description>Override wmagent version: format "0.8.1pre1" etc. | |
Blank for current deploy version. Only affects rpm install not code checkout.</description> | |
<defaultValue></defaultValue> | |
</hudson.model.TextParameterDefinition> | |
<hudson.model.TextParameterDefinition> | |
<name>SCRAM_ARCH</name> | |
<description></description> | |
<defaultValue>slc5_amd64_gcc461</defaultValue> | |
</hudson.model.TextParameterDefinition> | |
<hudson.model.StringParameterDefinition> | |
<name>branch</name> | |
<description>branch to build</description> | |
<defaultValue>master</defaultValue> | |
</hudson.model.StringParameterDefinition> | |
<hudson.model.StringParameterDefinition> | |
<name>pathToTest</name> | |
<description>Will limit the tests to a certain subset of the tree</description> | |
<defaultValue>test/python</defaultValue> | |
</hudson.model.StringParameterDefinition> | |
<hudson.model.FileParameterDefinition> | |
<name>REPLACEMENT_SOURCE.tar.gz</name> | |
<description>If provided, this tarball will replace the git checkout</description> | |
</hudson.model.FileParameterDefinition> | |
<hudson.model.StringParameterDefinition> | |
<name>unused</name> | |
<description>Not used, but we need to inject random arguments to keep jenkins from thinking the build has already been done</description> | |
<defaultValue></defaultValue> | |
</hudson.model.StringParameterDefinition> | |
</parameterDefinitions> | |
</hudson.model.ParametersDefinitionProperty> | |
</properties> | |
<scm class="org.jenkinsci.plugins.multiplescms.MultiSCM"> | |
<scms> | |
<hudson.plugins.git.GitSCM> | |
<configVersion>2</configVersion> | |
<userRemoteConfigs> | |
<hudson.plugins.git.UserRemoteConfig> | |
<name>origin</name> | |
<refspec></refspec> | |
<url>git://github.com/dmwm/WMCore.git</url> | |
</hudson.plugins.git.UserRemoteConfig> | |
</userRemoteConfigs> | |
<branches> | |
<hudson.plugins.git.BranchSpec> | |
<name>$branch</name> | |
</hudson.plugins.git.BranchSpec> | |
</branches> | |
<disableSubmodules>false</disableSubmodules> | |
<recursiveSubmodules>false</recursiveSubmodules> | |
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> | |
<authorOrCommitter>true</authorOrCommitter> | |
<clean>true</clean> | |
<wipeOutWorkspace>false</wipeOutWorkspace> | |
<pruneBranches>false</pruneBranches> | |
<remotePoll>false</remotePoll> | |
<ignoreNotifyCommit>false</ignoreNotifyCommit> | |
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/> | |
<gitTool>Default</gitTool> | |
<submoduleCfg class="list"/> | |
<relativeTargetDir>code</relativeTargetDir> | |
<reference></reference> | |
<excludedRegions></excludedRegions> | |
<excludedUsers></excludedUsers> | |
<gitConfigName></gitConfigName> | |
<gitConfigEmail></gitConfigEmail> | |
<skipTag>false</skipTag> | |
<includedRegions></includedRegions> | |
<scmName>WMCore</scmName> | |
</hudson.plugins.git.GitSCM> | |
<hudson.plugins.git.GitSCM> | |
<configVersion>2</configVersion> | |
<userRemoteConfigs> | |
<hudson.plugins.git.UserRemoteConfig> | |
<name>origin</name> | |
<refspec></refspec> | |
<url>git://github.com/dmwm/deployment.git</url> | |
</hudson.plugins.git.UserRemoteConfig> | |
</userRemoteConfigs> | |
<branches> | |
<hudson.plugins.git.BranchSpec> | |
<name>master</name> | |
</hudson.plugins.git.BranchSpec> | |
</branches> | |
<disableSubmodules>false</disableSubmodules> | |
<recursiveSubmodules>false</recursiveSubmodules> | |
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> | |
<authorOrCommitter>false</authorOrCommitter> | |
<clean>true</clean> | |
<wipeOutWorkspace>false</wipeOutWorkspace> | |
<pruneBranches>false</pruneBranches> | |
<remotePoll>false</remotePoll> | |
<ignoreNotifyCommit>false</ignoreNotifyCommit> | |
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/> | |
<gitTool>Default</gitTool> | |
<submoduleCfg class="list"/> | |
<relativeTargetDir>cfg/Deployment</relativeTargetDir> | |
<reference></reference> | |
<excludedRegions></excludedRegions> | |
<excludedUsers></excludedUsers> | |
<gitConfigName></gitConfigName> | |
<gitConfigEmail></gitConfigEmail> | |
<skipTag>false</skipTag> | |
<includedRegions></includedRegions> | |
<scmName>Infrastructure</scmName> | |
</hudson.plugins.git.GitSCM> | |
</scms> | |
</scm> | |
<quietPeriod>0</quietPeriod> | |
<canRoam>true</canRoam> | |
<disabled>false</disabled> | |
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> | |
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> | |
<triggers class="vector"> | |
<hudson.triggers.SCMTrigger> | |
<spec>* * * * *</spec> | |
</hudson.triggers.SCMTrigger> | |
</triggers> | |
<concurrentBuild>true</concurrentBuild> | |
<axes> | |
<hudson.matrix.TextAxis> | |
<name>jobSlice</name> | |
<values> | |
<string>0</string> | |
<string>1</string> | |
<string>2</string> | |
<string>3</string> | |
<string>4</string> | |
<string>5</string> | |
<string>6</string> | |
<string>7</string> | |
<string>8</string> | |
<string>9</string> | |
</values> | |
</hudson.matrix.TextAxis> | |
<hudson.matrix.LabelAxis> | |
<name>label</name> | |
<values> | |
<string>wmcore-unit-test-slaves</string> | |
</values> | |
</hudson.matrix.LabelAxis> | |
</axes> | |
<builders> | |
<hudson.tasks.Shell> | |
<command>env | |
# run latest wmagent deploy | |
set -x | |
# temporary | |
rm -rf /tmp/localclone-wmcore | |
rm -rf /tmp/localclone-deployment | |
#make local git repos to speed up clone operations | |
if [ ! -e /tmp/localclone-wmcore ]; then | |
git init /tmp/localclone-wmcore | |
git --git-dir=/tmp/localclone-wmcore/.git remote add origin git://github.com/dmwm/WMCore.git | |
git --git-dir=/tmp/localclone-wmcore/.git fetch | |
fi | |
if [ ! -e /tmp/localclone-deployment ]; then | |
git init /tmp/localclone-deployment | |
git --git-dir=/tmp/localclone-deployment/.git remote add origin git://github.com/dmwm/deployment.git | |
git --git-dir=/tmp/localclone-deployment/.git fetch | |
fi | |
# Make a /deploy somewhere common that will be found by all these jobs, so there's not like 30 deployments | |
if [ ! -h deploy ]; then | |
rm -rf deploy | |
mkdir /jenkins/deploy || true | |
ln -s /jenkins/deploy deploy | |
fi | |
if [ ! -h install ]; then | |
rm -rf install | |
mkdir /jenkins/install || true | |
ln -s /jenkins/install install | |
fi | |
# replace code with the input sandbox, if it exists | |
if [ -s REPLACEMENT_SOURCE.tar.gz ]; then | |
echo "Replacing setup.py and setup_test.py" | |
md5sum REPLACEMENT_SOURCE.tar.gz | |
ls -lah REPLACEMENT_SOURCE.tar.gz | |
mv code/.git GITBACKUP | |
rm -rf code | |
mkdir code | |
mv GITBACKUP code/.git | |
tar -C code -xzf REPLACEMENT_SOURCE.tar.gz | |
rm REPLACEMENT_SOURCE.tar.gz | |
set +x | |
if [[ "x${JOB_NAME}" =~ "-try" ]] | |
then | |
echo "Applying sandbox to try job" | |
else | |
echo "*********************WARNING**********************" | |
echo "**************************************************" | |
echo "If you're wanting to submit a test sandbox, you" | |
echo "need to use the JOBNAME-try target. Otherwise the" | |
echo "test results from regular and try jobs get mixed" | |
echo "**************************************************" | |
rm REPLACEMENT_SOURCE.tar.gz | |
exit 2 | |
fi | |
set -x | |
fi | |
if [ -e .noseids ]; then | |
rm -f .noseids | |
fi | |
if [ -e code/.noseids ]; then | |
rm -f code/.noseids | |
fi | |
# older versions of setup.py don't know how to split the test harness. Update them to a new(ish) | |
# revision if that's the case | |
(cd code | |
if [ ! `grep testTotalSlices setup_test.py`]; then | |
git show e7a114df5b81da27b1188b7f26c51196957291b3:setup_build.py > setup_build.py | |
git show e7a114df5b81da27b1188b7f26c51196957291b3:setup_dependencies.py > setup_dependencies.py | |
git show e7a114df5b81da27b1188b7f26c51196957291b3:setup_test.py > setup_test.py | |
git show e7a114df5b81da27b1188b7f26c51196957291b3:setup.py > setup.py | |
fi | |
cd .. | |
) | |
# older versions don't have the whitelist code. add this from github | |
(cd code | |
echo "Ignored errors are:" | |
rm standards/checkOutputs.py | |
if [ ! -f standards/checkOutputs.py ]; then | |
git fetch | |
git remote -v | |
git show remotes/origin/ignoretestfail:standards/checkOutputs.py > standards/checkOutputs.py | |
git show remotes/origin/ignoretestfail:standards/allowed_failing_tests.txt > standards/allowed_failing_tests.txt | |
fi | |
cat standards/allowed_failing_tests.txt | |
cd .. | |
) | |
# fix -comp issue | |
patch -N -d cfg/Deployment -p2 < $HOME/wmagent_deploy_dash_name.patch || true | |
# Get the most current install on this machine | |
current="none" | |
[ `ls -d /jenkins/deploy/current/sw*/slc5_amd64_gcc461/cms/wmagent/*` ] && current=$(basename $(ls -d /jenkins/deploy/current/sw*/slc5_amd64_gcc461/cms/wmagent/*)) | |
# Get the most recent install from the repository | |
if [ X$WMAGENT_VERSION == X ]; then | |
WMAGENT_VERSION=$(curl -s http://cms-dmwm-builds.web.cern.ch/cms-dmwm-builds/wmagent.$SCRAM_ARCH.comp | awk '{print $4}' | cut -d+ -f3) | |
fi | |
# stop the recursive link screwing things up (needs to be after bootstrap) | |
# jenkins hangs recursively scanning dir if left in | |
rm /jenkins/deploy/*/sw*/var || /bin/true | |
rm /jenkins/deploy/*/sw/var || /bin/true | |
for DIR in /jenkins/deploy/*/sw/jenkins; do | |
unlink $DIR || /bin/true | |
done | |
unlink /jenkins/deploy/current/sw/jenkins || /bin/true | |
rm /jenkins/deploy/*/sw*/jenkins || /bin/true | |
rm /jenkins/deploy/*/sw/jenkins || /bin/true | |
rm /jenkins/deploy/*/jenkins || /bin/true | |
# TODO: if a previous build leaves a corrupt install this will fail - how solve that - redeploy each time? | |
if [ X$current != X$WMAGENT_VERSION ]; then | |
echo "Deploying wmagent@$WMAGENT_VERSION" | |
if [ -e /jenkins/deploy/current ]; then | |
echo "Stopping agent" | |
/jenkins/deploy/current/config/wmagent/manage stop-agent || true | |
echo "Stopping services" | |
/jenkins/deploy/current/config/wmagent/manage stop-services || true | |
# remove old crons | |
crontab -r || true | |
# be sure everything died | |
set +e | |
killall mysqld | |
killall couchdb | |
killall beam.cmp | |
set -e | |
# each deploy is about a gig, get rid of it | |
if [ -e /jenkins/deploy/$current ]; then | |
rm -rf /jenkins/deploy/$current | |
fi | |
if [ -e /jenkins/deploy/$WMAGENT_VERSION ]; then | |
rm -rf /jenkins/deploy/$WMAGENT_VERSION | |
fi | |
fi | |
# deploy | |
$PWD/cfg/Deployment/Deploy -r comp=comp -t $WMAGENT_VERSION -A $SCRAM_ARCH -s 'prep sw post' /jenkins/deploy wmagent@${WMAGENT_VERSION} | |
# force mysql to a reasonable size | |
perl -p -i -e 's/set-variable = innodb_buffer_pool_size=2G/set-variable = innodb_buffer_pool_size=50M/' /jenkins/deploy/current/config/mysql/my.cnf | |
perl -p -i -e 's/set-variable = innodb_log_file_size=512M/set-variable = innodb_log_file_size=20M/' /jenkins/deploy/current/config/mysql/my.cnf | |
perl -p -i -e 's/key_buffer=4000M/key_buffer=100M/' /jenkins/deploy/current/config/mysql/my.cnf | |
perl -p -i -e 's/max_heap_table_size=2048M/max_heap_table_size=100M/' /jenkins/deploy/current/config/mysql/my.cnf | |
perl -p -i -e 's/tmp_table_size=2048M/tmp_table_size=100M/' /jenkins/deploy/current/config/mysql/my.cnf | |
/jenkins/deploy/current/config/wmagent/manage activate-agent | |
fi | |
# stop the recursive link screwing things up (needs to be after bootstrap) | |
# jenkins hangs recursively scanning dir if left in | |
rm /jenkins/deploy/*/sw*/var || /bin/true | |
rm /jenkins/deploy/*/sw/var || /bin/true | |
for DIR in /jenkins/deploy/*/sw/jenkins; do | |
unlink $DIR || /bin/true | |
done | |
unlink /jenkins/deploy/current/sw/jenkins || /bin/true | |
rm /jenkins/deploy/*/sw*/jenkins || /bin/true | |
rm /jenkins/deploy/*/sw/jenkins || /bin/true | |
rm /jenkins/deploy/*/jenkins || /bin/true | |
</command> | |
</hudson.tasks.Shell> | |
<hudson.tasks.Shell> | |
<command># start / ensure services are running | |
echo "starting services" | |
pwd | |
ls -lah | |
# make a simple secrets file if it doesn't exists | |
rm $HOME/WMAgent.secrets | |
if [ ! -e $HOME/WMAgent.secrets ]; then | |
echo "MYSQL_USER=test" >> $HOME/WMAgent.secrets | |
echo "MYSQL_PASS=test" >> $HOME/WMAgent.secrets | |
echo "COUCH_USER=test" >> $HOME/WMAgent.secrets | |
echo "COUCH_PASS=test" >> $HOME/WMAgent.secrets | |
echo "COUCH_PORT=5984" >> $HOME/WMAgent.secrets | |
echo "COUCH_HOST=127.0.0.1" >> $HOME/WMAgent.secrets | |
echo "WORKLOAD_SUMMARY_HOSTNAME=127.0.0.1" >> $HOME/WMAgent.secrets | |
echo "WORKLOAD_SUMMARY_PORT=5984" >> $HOME/WMAgent.secrets | |
echo "WORKLOAD_SUMMARY_DBNAME=workload_summary" >> $HOME/WMAgent.secrets | |
fi | |
# load libeatmydata to speed up the databases | |
if [ ! -e /jenkins/additionalCode/eatmydata ]; then | |
mkdir -p /jenkins/additionalCode/eatmydata | |
( cd /jenkins/additionalCode/eatmydata ; git clone git://github.com/dmwm/libeatmydata.git . ; make ) | |
fi | |
# divorce mysql and couchdb processes so they dont get killed | |
# https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller | |
# if the deploy fails, we need to go crazy and delete everything | |
set +e | |
BUILD_ID=dontKillMe LD_PRELOAD=/jenkins/additionalCode/eatmydata/libeatmydata.so /jenkins/deploy/current/config/wmagent/manage start-services | |
if [ $? -ne 0 ]; then | |
# Get the most recent install from the repository | |
if [ X$WMAGENT_VERSION == X ]; then | |
WMAGENT_VERSION=$(curl -s http://cms-dmwm-builds.web.cern.ch/cms-dmwm-builds/wmagent.$SCRAM_ARCH.comp | awk '{print $4}' | cut -d+ -f3) | |
fi | |
echo "Stopping agent" | |
/jenkins/deploy/current/config/wmagent/manage stop-agent | |
echo "Stopping services" | |
/jenkins/deploy/current/config/wmagent/manage stop-services | |
# remove old crons | |
crontab -r || true | |
# be sure everything died | |
set +e | |
killall mysqld | |
killall couchdb | |
killall beam.cmp | |
set -e | |
# each deploy is about a gig, get rid of it | |
if [ -e /jenkins/deploy/$current ]; then | |
rm -rf /jenkins/deploy/$current | |
fi | |
if [ -e /jenkins/deploy/$WMAGENT_VERSION ]; then | |
rm -rf /jenkins/deploy/$WMAGENT_VERSION | |
fi | |
echo "FATAL: Couldn't start/deploy required services. Exiting." | |
exit 3 | |
fi | |
set -e</command> | |
</hudson.tasks.Shell> | |
<hudson.tasks.Shell> | |
<command>set +x | |
. deploy/current/apps/wmagent/etc/profile.d/init.sh | |
for FILE in * ; do | |
SHOULDDELETE=y | |
for KEEP in code cfg install deploy; do | |
if [ "$FILE" == "$KEEP" ]; then | |
echo Keeping $FILE | |
SHOULDDELETE=n | |
fi | |
done | |
if [ "${SHOULDDELETE}" == "y" ]; then | |
echo Removing spurious $FILE from workspace | |
rm -rf $FILE | |
fi | |
done | |
set -x | |
rm -rf /jenkins/install | |
(cd code && python setup.py install --prefix=/jenkins/install | grep -v byte-compiling | grep -v copying | grep -v creating) | |
# Hack until the Couchapp harness gets fixes | |
if [ ! -e /jenkins/install/lib/python2.6/site-packages/data/couchapps ]; then | |
mkdir -p /jenkins/install/lib/python2.6/site-packages/data/ | |
ln -s /jenkins/install/data/couchapps /jenkins/install/lib/python2.6/site-packages/data/couchapps | |
fi | |
</command> | |
</hudson.tasks.Shell> | |
<hudson.tasks.Shell> | |
<command>set +x | |
. deploy/current/apps/wmagent/etc/profile.d/init.sh | |
set -x | |
set +x | |
export WMCORE_ROOT=/jenkins/install | |
export PATH=$WMCORE_ROOT/bin:$PATH | |
export PYTHONPATH=$PYTHONPATH:/data/software/lib/python2.6/site-packages | |
export PYTHONPATH=$WMCORE_ROOT/lib/python2.6/site-packages:$PYTHONPATH | |
export PYTHONPATH=$WMCORE_ROOT/test/python:$PYTHONPATH | |
export PYTHONPATH=/var/lib/jenkins/additional-library:$PYTHONPATH:/usr/lib/python2.6/site-packages | |
set -x | |
set +x # don't echo secrets | |
. /var/lib/jenkins/WMAgent.secrets | |
export DATABASE=mysql://${MYSQL_USER}:${MYSQL_PASS}@localhost/WMCore_unit_test | |
export DBSOCK=deploy/current/install/mysql/logs/mysql.sock | |
export COUCHURL="http://${COUCH_USER}:${COUCH_PASS}@${COUCH_HOST}:${COUCH_PORT}" | |
# ensure db exists | |
echo "CREATE DATABASE IF NOT EXISTS WMCore_unit_test" | mysql -u ${MYSQL_USER} --password=${MYSQL_PASS} --socket=${DBSOCK} | |
set -x | |
# working dir includes entire python source - ignore | |
perl -p -i -e 's/--cover-inclusive//' setup_test.py | |
#export NOSE_EXCLUDE='AlertGenerator' | |
# timeout tests after 5 mins | |
#export NOSE_PROCESSES=1 | |
export NOSE_PROCESS_TIMEOUT=300 | |
#export NOSE_PROCESS_RESTARTWORKER=1 | |
# cover branches but not external python modules | |
#FIXME: Is this working? No. | |
perl -p -i -e 's/--cover-inclusive/--cover-branches/' setup_test.py | |
perl -p -i -e "s/'--cover-html',//" setup_test.py | |
# include FWCore.ParameterSet.Config | |
# remove old coverage data | |
if [ -e /data/software/bin/coverage ]; then | |
/data/software/bin/coverage erase | |
fi | |
# run test - force success though - failure stops coverage report | |
ls -lah code | |
if [ "x$pathToTest" == "x" ]; then | |
export pathToTest="test/python" | |
fi | |
# temporary | |
rm code/test/python/WMCore_t/Cache_t/WorkloadSummary_t.py || true | |
rm code/test/python/WMCore_t/HTTPFrontEnd_t/WMBS_t/WMBS_t.py || true | |
# clean up stale test runs | |
killall -9 python || true | |
killall -9 python2.6 || true | |
# we're going to handle the exit code below | |
set +e | |
echo "WMCORE_ROOT is $WMCORE_ROOT" | |
# Watchdog to make sure this doesn't take too long | |
bash -c '(for theminute in $(seq 20); do | |
if [ -s nosetests.xml ]; then | |
sleep 65 | |
break | |
fi | |
sleep 30 | |
done | |
sleep 300 | |
echo WATCHDOG SOON | |
sleep 10 | |
echo WATCHDOG TRIGGERED | |
kill -HUP $$) & exec python2.6 code/setup.py test --buildBotMode=true --reallyDeleteMyDatabaseAfterEveryTest=true --testCertainPath=code/$pathToTest --testTotalSlices=10 --testCurrentSlice=$jobSlice --testingRoot=code/test/python' | |
WMCORE_STATUS=$? | |
set -e | |
if [ "x$WMCORE_STATUS" != "x0" ]; then | |
# the test failed, see if it was an okay failure | |
# this will return non-zero so the test will fail | |
python2.6 code/standards/checkOutputs.py nosetests.xml code/standards/allowed_failing_tests.txt | |
fi | |
# Add these here as they need the same environment as the main run | |
#FIXME: change so initial coverage command skips external code | |
if [ -e /data/software/bin/coverage ]; then | |
/data/software/bin/coverage xml -i --include=$PWD/install* || true | |
fi | |
export PYLINTHOME=$PWD/.pylint.d # force pylint cache to this workspace | |
#ulimit -n 4086 # opens all source files at once (> 1024) | |
#/data/software/bin/pylint --rcfile=code/standards/.pylintrc -f parseable install/lib/python2.6/site-packages/* 2>&1 > pylint.txt || true</command> | |
</hudson.tasks.Shell> | |
<hudson.tasks.Shell> | |
<command># bring in testing utilities | |
#. /var/lib/jenkins/jobs/deploy-wmagent/workspace/current/apps/wmagent/etc/profile.d/init.sh | |
#export PYTHONPATH=$PYTHONPATH:/data/software/lib/python2.6/site-packages | |
#export WMCORE_ROOT=$PWD/install | |
#export PYTHONPATH=$WMCORE_ROOT/lib/python2.6/site-packages:$PYTHONPATH | |
#export PYTHONPATH=$WMCORE_ROOT/test/python:$PYTHONPATH | |
#set +e | |
#/data/software/bin/coverage xml -i || true | |
#/data/software/bin/pylint --rcfile=standards/.pylintrc -f parseable src/python/WMCore/* 2>&1 > pylint.txt || true</command> | |
</hudson.tasks.Shell> | |
</builders> | |
<publishers> | |
<hudson.plugins.chucknorris.CordellWalkerRecorder> | |
<factGenerator/> | |
</hudson.plugins.chucknorris.CordellWalkerRecorder> | |
<hudson.tasks.junit.JUnitResultArchiver> | |
<testResults>**/nosetests.xml</testResults> | |
<keepLongStdio>false</keepLongStdio> | |
<testDataPublishers/> | |
</hudson.tasks.junit.JUnitResultArchiver> | |
</publishers> | |
<buildWrappers> | |
<hudson.plugins.build__timeout.BuildTimeoutWrapper> | |
<timeoutMinutes>30</timeoutMinutes> | |
<failBuild>false</failBuild> | |
<writingDescription>false</writingDescription> | |
<timeoutPercentage>0</timeoutPercentage> | |
<timeoutType>absolute</timeoutType> | |
<timeoutMinutesElasticDefault>3</timeoutMinutesElasticDefault> | |
</hudson.plugins.build__timeout.BuildTimeoutWrapper> | |
</buildWrappers> | |
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl"> | |
<runSequentially>false</runSequentially> | |
</executionStrategy> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment