Skip to content
Snippets Groups Projects
Commit b3bc6289 authored by Stephen C Phillips's avatar Stephen C Phillips
Browse files

fixture script requires `-c all` to apply action to all containers

parent 77a5cae1
No related branches found
No related tags found
No related merge requests found
## © University of Southampton IT Innovation Centre, 2018
##
## Copyright in this software belongs to University of Southampton
## IT Innovation Centre of Gamma House, Enterprise Road,
## IT Innovation Centre of Gamma House, Enterprise Road,
## Chilworth Science Park, Southampton, SO16 7NS, UK.
##
## This software may not be used, sold, licensed, transferred, copied
......@@ -18,7 +18,7 @@
## Created By : Michael Boniface
## Created Date : 21-03-2018
## Created for Project : FLAME
stages:
stages:
- build
- test
- clean
......@@ -26,13 +26,13 @@ stages:
build:tests:
stage: build
only:
- schedules
script:
- schedules
script:
- echo $CI_PROJECT_DIR
- cd $CI_PROJECT_DIR/src/test
- python setup.py sdist --dist-dir=$CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/src/service
- python setup.py sdist --dist-dir=$CI_PROJECT_DIR/build
- python setup.py sdist --dist-dir=$CI_PROJECT_DIR/build
artifacts:
paths:
- build/clmctest-SNAPSHOT.tar.gz
......@@ -42,28 +42,28 @@ build:tests:
test:all:
stage: test
only:
- schedules
dependencies:
- schedules
dependencies:
- build:tests
script:
- echo "REPO_USER=${REPO_USER}" > $CI_PROJECT_DIR/reporc
- echo "REPO_USER=${REPO_USER}" > $CI_PROJECT_DIR/reporc
- echo "REPO_PASS=${REPO_PASS}" >> $CI_PROJECT_DIR/reporc
- sudo scripts/test/fixture.sh create -f src/test/clmctest/rspec.json -r $CI_PROJECT_DIR
- sudo scripts/test/fixture.sh create -f src/test/clmctest/rspec.json -r $CI_PROJECT_DIR -c all
- sudo mkdir /var/lib/lxc/test-runner/rootfs/vagrant/build
- sudo cp build/clmctest-SNAPSHOT.tar.gz /var/lib/lxc/test-runner/rootfs/vagrant/build
- sudo cp build/clmcservice-SNAPSHOT.tar.gz /var/lib/lxc/test-runner/rootfs/vagrant/build
- sudo lxc-attach -n test-runner -- pip3 install /vagrant/build/clmctest-SNAPSHOT.tar.gz
- sudo lxc-attach -n test-runner -- pip3 install /vagrant/build/clmcservice-SNAPSHOT.tar.gz
- sudo lxc-attach -n test-runner -- pytest -s --tb=short -rfp --pyargs clmctest.scripts
- sudo lxc-attach -n test-runner -- pytest -s --tb=short -rfp --pyargs clmcservice.tests
- sudo lxc-attach -n test-runner -- pytest -s --tb=short -rfp --pyargs clmcservice.tests
- sudo lxc-attach -n test-runner -- pytest -s --tb=short -rfp --pyargs clmctest.inputs
- sudo lxc-attach -n test-runner -- pytest -s --tb=short -rfp --pyargs clmctest.monitoring
when: on_success
when: on_success
clean:
stage: clean
only:
- schedules
script:
- schedules
script:
- sudo scripts/test/fixture.sh destroy -f src/test/clmctest/rspec.json
when: always
when: always
......@@ -62,14 +62,14 @@ SSH into the VM
The containers are controlled using a script called /vagrant/scripts/test/fixtures.sh
```
Usage: fixture.sh create|start|stop|destroy [-f config_file] [-r repo_root] [-c service_name]"
Usage: fixture.sh create|start|stop|destroy [-f config_file] [-r repo_root] [-c container_name|all]"
```
To create all the services needed for integration tests
```
sudo su
/vagrant/scripts/test/fixture.sh create -f /vagrant/src/test/clmctest/rspec.json
/vagrant/scripts/test/fixture.sh create -f /vagrant/src/test/clmctest/rspec.json -c all
```
The containers created are defined an rspec.json file, there's an example here `/vagrant/src/test/clmctest/rspec.json`
......
#!/bin/bash
usage() {
echo "Usage: $0 create|start|stop|destroy [-f config_file] [-r repo_root] [-c service_name]" 1>&2
echo "Usage: $0 create|start|stop|destroy [-f config_file] [-r repo_root] [-c container_name|all]" 1>&2
exit 1
}
......@@ -182,12 +182,19 @@ if [ ! -d ${repo_root} ]; then
exit 1
fi
# check a service has been defined
if [ -z ${container} ]; then
echo "A container must be named: use 'all' for all"
usage
exit 1
fi
# iterate of list of services in configuration file
command=$1
service_names=$(jq -r '.[].name' ${config_file})
for service_name in $service_names; do
# if all or specific container
if [ -z ${container} ] || [ ${container} == ${service_name} ]; then
if [ ${container} = all -o ${container} = ${service_name} ]; then
case "${command}" in
create)
create ${service_name} ${config_file} ${repo_root}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment