| #!/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}" |