123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # $HOME/.config/mdbci/max-tst.key file should contain private key to access host
 | |
| 
 | |
| # read the name of build scripts directory
 | |
| export script_dir="$(dirname $(readlink -f $0))"
 | |
| 
 | |
| rm -rf LOGS
 | |
| 
 | |
| export curr_date=`date '+%Y-%m-%d_%H-%M'`
 | |
| export mdbci_config_name=${name:-$box-${curr_date}}
 | |
| export mdbci_config_name=`echo ${mdbci_config_name} | sed "s/?//g"`
 | |
| export MDBCI_VM_PATH=$HOME/${mdbci_config_name}_vms
 | |
| export PATH=$PATH:$HOME/mdbci
 | |
| export MDBCI_EXECUTABLE=`which mdbci`
 | |
| 
 | |
| . ${script_dir}/set_run_test_variables.sh
 | |
| 
 | |
| export name=$mdbci_config_name
 | |
| 
 | |
| # prepare separate dir for MDBCI vms
 | |
| rm -rf $HOME/${mdbci_config_name}_vms
 | |
| mkdir -p $HOME/${mdbci_config_name}_vms
 | |
| 
 | |
| export provider=`mdbci show provider $box --silent 2> /dev/null`
 | |
| export backend_box=${backend_box:-"centos_7_"$provider}
 | |
| 
 | |
| mdbci destroy --force test_vm
 | |
| 
 | |
| cp ${script_dir}/test_vm.json $HOME/${mdbci_config_name}_vms/
 | |
| test_vm_box="ubuntu_bionic_"$provider
 | |
| me=`whoami`
 | |
| sed -i "s/###test_vm_box###/${test_vm_box}/"  $HOME/${mdbci_config_name}_vms/test_vm.json 
 | |
| sed -i "s/###test_vm_user###/${me}/" $HOME/${mdbci_config_name}_vms/test_vm.json
 | |
| 
 | |
| mdbci generate test_vm --template test_vm.json --override
 | |
| mdbci up test_vm
 | |
| 
 | |
| ip=`mdbci show network --silent test_vm`
 | |
| key=`mdbci show keyfile --silent test_vm`
 | |
| sshopt="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=120  "
 | |
| 
 | |
| 
 | |
| ssh -i $key $sshopt $me@$ip "mkdir -p .ssh; mkdir -p ${MDBCI_VM_PATH}; mkdir -p mdbci; mkdir -p MaxScale"
 | |
| scp -i $key $sshopt -r ${script_dir}/../../* $me@$ip:~/MaxScale/
 | |
| 
 | |
| scp -i $key $sshopt $HOME/.config/mdbci/max-tst.key $me@$ip:~/.ssh/id_rsa
 | |
| ssh -i $key $sshopt $me@$ip "chmod 400 .ssh/id_rsa"
 | |
| scp -i $key $sshopt ${script_dir}/mdbci_wrapper $me@$ip:~/mdbci/mdbci
 | |
| ssh -i $key $sshopt $me@$ip "chmod +x mdbci/mdbci"
 | |
| 
 | |
| echo export MDBCI_VM_PATH=${MDBCI_VM_PATH} > test_env
 | |
| echo export PATH=\$PATH:\$HOME/mdbci >> test_env
 | |
| echo export host_user=$me  >> test_env
 | |
| my_ip=`ip route get $ip | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | tail -1`
 | |
| echo export host_ip=${my_ip} >> test_env
 | |
| 
 | |
| test_env_list=(
 | |
|     "WORKSPACE"
 | |
|     "JOB_NAME"
 | |
|     "BUILD_NUMBER"
 | |
|     "BUILD_TIMESTAMP"
 | |
|     "MDBCI_EXECUTABLE"
 | |
|     "name"
 | |
|     "target"
 | |
|     "box"
 | |
|     "backend_box"
 | |
|     "xpand_box"
 | |
|     "product"
 | |
|     "version"
 | |
|     "do_not_destroy_vm"
 | |
|     "test_set"
 | |
|     "ci_url"
 | |
|     "smoke"
 | |
|     "big"
 | |
|     "backend_ssl"
 | |
|     "use_snapshots"
 | |
|     "no_vm_revert"
 | |
|     "template"
 | |
|     "config_to_clone"
 | |
|     "test_branch"
 | |
|     "use_valgrind"
 | |
|     "use_callgrind"
 | |
|     "maxscale_product"
 | |
|     "force_maxscale_version"
 | |
|     "force_backend_version"
 | |
| )
 | |
| 
 | |
| for s in ${test_env_list[@]} ; do
 | |
|    eval "v=\$$s"
 | |
|    if [ -n "$v" ] ; then
 | |
|        echo "export $s=\"$v\"" >> test_env
 | |
|    fi
 | |
| done
 | |
| 
 | |
| cat test_env
 | |
| 
 | |
| scp -i $key $sshopt test_env $me@$ip:~/
 | |
| 
 | |
| ssh -i $key $sshopt $me@$ip "sudo usermod --shell /bin/bash $me"
 | |
| ssh -i $key $sshopt $me@$ip "./MaxScale/BUILD/install_test_build_deps.sh"
 | |
| ssh -i $key $sshopt $me@$ip ". ./test_env; env; ./MaxScale/system-test/mdbci/run_test.sh"
 | |
| if [ $? != 0 ] ; then
 | |
|     echo "Tests execution FAILED! exiting"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| . ${script_dir}/configure_log_dir.sh
 | |
| mkdir -p LOGS
 | |
| mkdir -p ${logs_publish_dir}
 | |
| scp -i $key $sshopt -r $me@$ip:./MaxScale/build/system-test/LOGS/* LOGS/
 | |
| 
 | |
| 
 | |
| cp core.* ${logs_publish_dir}
 | |
| ${script_dir}/copy_logs.sh
 | |
| 
 | |
| if [ "${do_not_destroy_vm}" != "yes" ] ; then
 | |
| 	mdbci destroy --force ${mdbci_config_name}
 | |
|         mdbci destroy --force test_vm
 | |
|         rm -rf $HOME/${mdbci_config_name}_vms
 | |
| 	echo "clean up done!"
 | |
| fi
 | 
