Markus Mäkelä 7be11af911
Fix release documentation
Copied the contents of the pull request to the wrong repo to the correct
one.
2018-06-08 07:45:18 +03:00
..
2018-03-13 11:37:10 +02:00
2018-06-08 07:45:18 +03:00
2018-03-13 11:37:10 +02:00

build-scripts-vagrant

Build and test scripts to work with Vagrant-controlled VMs do follwoing:

  • create VM for Maxscale build
  • create a set of VMs (test environment) for running Maxscale tests

Test environment consists of:

  • 'maxscale' machine
  • 'nodeN' machines for Master/Slave setup (node0, node1, node2, node3)
  • 'galeraN' machines for Galera cluster (galera0, galera1, galera2, galera3)

Main files

File Description
prepare_and_build.sh Create VM for build and execute build, publish resulting repository
build.<provider>.template.json templates of MDBCI configuration description (build environment description) of build machines
test-setup-scripts/setup_repl.sh Prepares repl_XXX machines to be configured into Master/Slave
test-setup-scripts/galera/setup_galera.sh Prepares galera_XXX machines to be configured into Galera cluster
test-setup-scripts/cnf/ my.cnf files for all backend machines
test/template.<provider>.json Templates of MDBCI configuration description (test environment description) of test machines
test/run_test.sh Creates test environment, build maxscale-system-tests from source and execute tests using ctest
test/set_env_vagrant.sh set all environment variables for existing test machines using MDBCI to get all values
test/create_env.sh Creates test environment, copy Maxscale source code to 'maxscale' machine in this environment, build Maxscale

prepare_and_build.sh

Following variables have to be defined before executing prepare_and_build.sh

Variable Meaning
$MDBCI_VM_PATH Path to duirectory to store VM info and Vagrant files (by default $HOME/vms)
$box name of MDBCI box (see MDBCI docs)
$target name of repository to put result of build
$scm_source reference to the place in Maxscale source GIT repo
$cmake_flags additional cmake flags
$do_not_destroy_vm if 'yes' build VM won't be destroyed after the build. NOTE: do not forget destroy it manually
$no_repo if 'yes' repository won't be built

Scripts creates MDBCI configuration build_$box-.json, bringing it up (the directory build_$box- is created)

Resulting DEB or RPM first go to ~/pre-repo/$target/$box

NOTE: if ~/pre-repo/$target/$box contains older version they will also go to repostory

Resulting repository goes to ~/repository/$target/mariadb-maxscale/

It is recommeneded to publish ~/repository/ directory on a web server

test/run_test.sh

Following variables have to be defined before executing run_test.sh

Variable Meaning
$box name of MDBCI box for Maxscale machine (see MDBCI docs)
$name unique name of test setup
$product 'mariadb' or 'mysql'
$version version of backend DB
$target name of Maxscale repository
$ci_url URL of repostory web site, Maxscale will be installed from $ci_url/$target/mariadb-maxscale/
$do_not_destroy_vm if 'yes' build VM won't be destroyed after the build. NOTE: do not forget to destroy it manually
$smoke if 'yes' all tests are executed in 'quick' mode (less iterations, skip heavy operations)
$test_set definition of set of tests to run in ctest notation
test_set_labels list of ctest labels. If it is not define 'test_set' will be used as a plain string

Test environment operations

Accessing nodes

cd $MDBCI_VM_PATH/$name/
vagrant ssh $node_name

where $node_name - 'maxscale', 'node0', ..., 'node3', ..., 'nodeN', 'galera0', ..., 'galera3', ..., 'galeraN'

Getting IP address and access keys

~/mdbci/mdbci show network $name
~/mdbci/mdbci show network $name/$node_name
~/mdbci/mdbci show keyfile $name/$node_name

Destroying environemnt

cd $MDBCI_VM_PATH/$name/
vagrant destroy -f

Set variables by test/set_env_vagrant.sh

. ../build-scripts/test/set_env_vagrant.sh $name