| Michael Walsh | b1a64eb | 2017-10-04 17:33:11 -0500 | [diff] [blame] | 1 | #!/bin/bash | 
|  | 2 |  | 
|  | 3 | # Run an obmc test robot program in a docker environment. | 
|  | 4 |  | 
|  | 5 | # This program is to be run from a Jenkins job such as 'Run-Robot-Program'. | 
|  | 6 | # This program expects the Jenkins job to provide several parameter values | 
|  | 7 | # as environment variables.  This includes but is not limited to the | 
|  | 8 | # following: | 
|  | 9 | # WORKSPACE | 
|  | 10 | # robot_file_path | 
|  | 11 | # git_dir_path | 
|  | 12 | # post_clone_command | 
|  | 13 | # openbmc_host | 
|  | 14 | # openbmc_username | 
|  | 15 | # openbmc_password | 
|  | 16 | # additional_parms | 
|  | 17 |  | 
|  | 18 | # Source other bash files containing required functions. | 
|  | 19 | source_files="jenkins_funcs.sh" | 
|  | 20 | pathlist=$(/usr/bin/which $source_files) || exit 1 | 
|  | 21 | for filepath in $pathlist ; do source $filepath || exit 1 ; done | 
|  | 22 |  | 
|  | 23 | # Fail if an unset variable is accessed. | 
|  | 24 | set -u | 
|  | 25 |  | 
|  | 26 | # Assign default values. | 
|  | 27 | WORKSPACE="${WORKSPACE:-${HOME}}" | 
|  | 28 | git_dir_path="${git_dir_path:-${WORKSPACE}}" | 
|  | 29 |  | 
|  | 30 | # Follow the convention of ensuring that dir paths end with slash. | 
|  | 31 | WORKSPACE="${WORKSPACE%/}/" | 
|  | 32 | git_dir_path="${git_dir_path%/}/" | 
|  | 33 |  | 
|  | 34 |  | 
|  | 35 | function mainf { | 
|  | 36 |  | 
|  | 37 | # Delete leftover output from prior runs. | 
|  | 38 | rm -f ${WORKSPACE}*.html ${WORKSPACE}*.xml || return 1 | 
|  | 39 | process_git "${git_dir_path}" "${post_clone_command-}" || return 1 | 
|  | 40 | process_docker "${git_dir_path}" || return 1 | 
|  | 41 |  | 
|  | 42 | if [ -z "${robot_file_path-}" ] ; then | 
|  | 43 | echo "robot_file_path is blank so no there is no need to continue." | 
|  | 44 | return | 
|  | 45 | fi | 
|  | 46 |  | 
|  | 47 | run_docker_robot "${robot_file_path}" || return 1 | 
|  | 48 |  | 
|  | 49 | } | 
|  | 50 |  | 
|  | 51 |  | 
|  | 52 | # Main | 
|  | 53 |  | 
|  | 54 | mainf "${@}" | 
|  | 55 | rc="${?}" | 
|  | 56 | exit "${rc}" |