From 6a7606131148a94ba211aaee0b4365c8b81c97ae Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 19 Mar 2020 17:51:32 +0100 Subject: centos-ci: add first cut at samba-integration-centos-ci-tests.sh This prepares the environment but does not run tests yet. Signed-off-by: Michael Adam --- samba-integration-centos-ci-tests.sh | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 samba-integration-centos-ci-tests.sh diff --git a/samba-integration-centos-ci-tests.sh b/samba-integration-centos-ci-tests.sh new file mode 100755 index 0000000..cc05dca --- /dev/null +++ b/samba-integration-centos-ci-tests.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +# Set up a centos7 machine with the required environment to +# run the tests from https://github.com/gluster/samba-integration.git +# and run the tests. + +# if anything fails, we'll abort +set -e + +# TODO: disable debugging +set -x + +GIT_REPO_NAME="samba-integration" +GIT_REPO_URL="https://github.com/gluster/${GIT_REPO_NAME}.git" + +# enable additional sources for yum +# (SCL repository for Vagrant, epel for ansible) +yum -y install centos-release-scl epel-release + +# Install additional packages +# +# note: adding sclo-vagrant1-vagrant explicitly seems to fix +# issues where libvirt fails to bring up the vm with errors like this: +# "Call to virDomainCreateWithFlags failed: the CPU is incompatible with host +# CPU: Host CPU does not provide required features: svm" (or vmx) +# +yum -y install \ + qemu-kvm \ + qemu-kvm-tools \ + qemu-img \ + sclo-vagrant1-vagrant \ + sclo-vagrant1-vagrant-libvirt \ + git \ + make \ + python-py \ + python-virtualenv \ + ansible + +# Vagrant needs libvirtd running +systemctl start libvirtd + +# Log the virsh capabilites so that we know the +# environment in case something goes wrong. +virsh capabilities + +rm -rf tests +mkdir tests +cd tests +git clone "${GIT_REPO_URL}" +cd "${GIT_REPO_NAME}" + +# by default we clone the master branch, but maybe this was triggered through a PR? +if [ -n "${ghprbPullId}" ] +then + git fetch origin pull/${ghprbPullId}/head:pr_${ghprbPullId} + git checkout pr_${ghprbPullId} + + git rebase master + if [ $? -ne 0 ] ; then + echo "Unable to automatically merge master. Please rebase your patch" + exit 1 + fi +fi + +# Prefetch the centos/7 vagrant box. +# We use the vagrant cloud rather than fetching directly from centos +# in order to get proper version metadata & caching support. +# (The echo is becuase of "set -e" and that an existing box will cause +# vagrant to return non-zero.) +scl enable sclo-vagrant1 -- \ + vagrant box add "https://vagrantcloud.com/centos/7" --provider "libvirt" \ + || echo "Warning: the vagrant box may already exist OR an error occured" + +# time to run the tests: + +# TODO: add real tests to execute +true +#echo make "${TEST_TARGET}" | scl enable sclo-vagrant1 bash + +# END -- cgit