Framework: Separate merge from test execution in PullRequestLinuxDriver.sh
Created by: william76
@trilinos/framework
Currently, if cmake/std/PullRequestLinuxDriver.sh
is modified it might not work properly for the Develop->to->Master if the script has been changed since the 'version' of the script being run will be the one that exists on master. If the change adds a new test, the dev->to->master test will fail because the if-then-else statement comparing job names for the new job won't exist in this piece:
if [ "Trilinos_pullrequest_gcc_4.8.4" == "${JOB_BASE_NAME:?}" ] ; then
source ${TRILINOS_DRIVER_SRC_DIR}/cmake/std/sems/PullRequestGCC4.8.4TestingEnv.sh
ierror=$?
if [[ $ierror != 0 ]]; then
echo "There was an issue loading the gcc environment. The error code was: $ierror"
exit $ierror
fi
elif [ ... ]
# other tests...
else
ierror=42
echo "There was an issue loading the proper environment. The error code was: $ierror"
exit $ierror
fi
In the case where an additional entry to this switch statement is made and is on the develop branch but not on the master branch, the script will fail because Jenkins is running the version of the script that lives on master because the script performs the merge of the test branch into master.
As part of a revamp of the PR driver script(s), we should split out the part of the script that merges the test branch into the master branch from the rest so that we can merge the develop branch into master separately from testing it within the Jenkins test.
@jwillenbring I didn't spend a ton of time writing this issue up... did I miss anything?