|  | #!/bin/bash | 
|  |  | 
|  | # Run an obmc test robot program in a docker environment. | 
|  |  | 
|  | # This program is to be run from a Jenkins job such as 'Run-Robot-Program'. | 
|  | # This program expects the Jenkins job to provide several parameter values | 
|  | # as environment variables.  This includes but is not limited to the | 
|  | # following: | 
|  | # WORKSPACE | 
|  | # robot_file_path | 
|  | # git_dir_path | 
|  | # post_clone_command | 
|  | # openbmc_host | 
|  | # openbmc_username | 
|  | # openbmc_password | 
|  | # additional_parms | 
|  |  | 
|  | # Source other bash files containing required functions. | 
|  | source_files="jenkins_funcs.sh" | 
|  | pathlist=$(/usr/bin/which $source_files) || exit 1 | 
|  | for filepath in $pathlist ; do source $filepath || exit 1 ; done | 
|  |  | 
|  | # Fail if an unset variable is accessed. | 
|  | set -u | 
|  |  | 
|  | # Assign default values. | 
|  | WORKSPACE="${WORKSPACE:-${HOME}}" | 
|  | git_dir_path="${git_dir_path:-${WORKSPACE}}" | 
|  |  | 
|  | # Follow the convention of ensuring that dir paths end with slash. | 
|  | WORKSPACE="${WORKSPACE%/}/" | 
|  | git_dir_path="${git_dir_path%/}/" | 
|  |  | 
|  |  | 
|  | function mainf() { | 
|  |  | 
|  | # Delete leftover output from prior runs. | 
|  | rm -f ${WORKSPACE}*.html ${WORKSPACE}*.xml || return 1 | 
|  | process_git "${git_dir_path}" "${post_clone_command-}" || return 1 | 
|  | process_docker "${git_dir_path}" || return 1 | 
|  |  | 
|  | if [ -z "${robot_file_path-}" ] ; then | 
|  | echo "robot_file_path is blank so no there is no need to continue." | 
|  | return | 
|  | fi | 
|  |  | 
|  | run_docker_robot "${robot_file_path}" || return 1 | 
|  |  | 
|  | } | 
|  |  | 
|  |  | 
|  | # Main | 
|  |  | 
|  | mainf "${@}" | 
|  | rc="${?}" | 
|  | exit "${rc}" |