-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathit.sh
executable file
·101 lines (68 loc) · 3.59 KB
/
it.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/bin/bash
# Execute inside a container created with command:
# cd elastest-torm
# sudo docker run -it --rm -v $PWD:/data -v /var/run/docker.sock:/var/run/docker.sock:rw elastest/ci-docker-compose-siblings
# cd /data/scripts
# ./it.sh
function containerIp () {
ip=$(docker inspect --format=\"{{.NetworkSettings.Networks."$COMPOSE_PROJECT_NAME"_elastest.IPAddress}}\" "$COMPOSE_PROJECT_NAME"_$1_1)
echo $( echo $ip | cut -f2 -d'"' )
}
# check open descriptors
sysctl -a | grep max_map
# Clean environment
echo "Remove etm* containers"
docker ps -a
docker ps -a | grep "etm" | awk '{print $1}' | xargs docker rm -f
docker ps -a
# Start docker-compose
projectName="etm$BUILD_NUMBER"
export COMPOSE_PROJECT_NAME=$projectName
echo $COMPOSE_PROJECT_NAME
docker pull elastest/esm
docker-compose -f ../docker/docker-compose-complementary.yml -f ../docker/docker-compose-testlink.yml -p $projectName up -d
# Connect test container to docker-compose network
containerId=$(cat /proc/self/cgroup | grep "docker" | sed s/\\//\\n/g | tail -1)
echo "containerId = ${containerId}"
docker network connect ${projectName}_elastest ${containerId}
# Get services IPs
ET_EDM_MYSQL_HOST=$(containerIp "edm-mysql")
ET_EDM_MYSQL_PORT=3306
ET_ETM_RABBIT_HOST=$(containerIp "etm-rabbitmq")
ET_ETM_RABBIT_PORT=5672
ELASTICSEARCH_IP=$(containerIp "edm-elasticsearch")
LOGSTASH_IP=$(containerIp "etm-logstash")
ET_ESM_HOST=$(containerIp "esm")
EXEC_MODE='normal'
ET_ESM_SS_DESC_FILES_PATH='esm_services/'
ET_ETM_INCONTAINER=false
ELASTEST_DOCKER_NETWORK=${projectName}_elastest
ET_IN_PROD=true
ET_PROXY_PORT=37000
ET_ETM_LOGSTASH_CONTAINER_NAME=${projectName}_etm-logstash_1
ET_EDM_MYSQL_CONTAINER_NAME=${projectName}_edm-mysql_1
ET_COMPOSE_PROJECT_NAME=${projectName}
# TestLink Container Name
ET_ETM_TESTLINK_HOST=$(docker ps | awk '{print $NF}' | grep ".*etm-testlink.*")
ET_ETM_LSTCP_PORT=37500
ET_ETM_LSHTTP_PORT=37501
ET_ETM_LSBEATS_PORT=37502
ET_ETM_INTERNAL_LSBEATS_PORT=37503
# Env variables to set the data folder of ElasTest
export ET_SHARED_FOLDER='/tmp/data'
export ET_DATA_IN_HOST='/tmp/.elastest'
export ET_FILES_PATH_IN_HOST='/tmp/.elastest'
export ET_ETM_TESTLINK_API_KEY='20b9a66e17597842404062c3b628b938'
# Execute Integration tests
echo "Starting maven integration tests"
cd ../elastest-torm
docker ps -a
mvn -Det.edm.mysql.host=${ET_EDM_MYSQL_HOST} -Det.edm.mysql.port=${ET_EDM_MYSQL_PORT} -Det.etm.rabbit.host=${ET_ETM_RABBIT_HOST} -Det.etm.rabbit.port=${ET_ETM_RABBIT_PORT} -Det.edm.elasticsearch.api=http://${ELASTICSEARCH_IP}:9200/ -Dlogstash.host=${LOGSTASH_IP} -Det.esm.api=http://${ET_ESM_HOST}:37005/ -Delastest.execution.mode=${EXEC_MODE} -Det.esm.ss.desc.files.path=${ET_ESM_SS_DESC_FILES_PATH} -Det.etm.incontainer=${ET_ETM_INCONTAINER} -Det.compose.project.name=${ET_COMPOSE_PROJECT_NAME} -Delastest.docker.network=${ELASTEST_DOCKER_NETWORK} -Det.in.prod=${ET_IN_PROD} -Det.proxy.port=${ET_PROXY_PORT} -Det.etm.logstash.container.name=${ET_ETM_LOGSTASH_CONTAINER_NAME} -Det.edm.mysql.container.name=${ET_EDM_MYSQL_CONTAINER_NAME} -Det.etm.testlink.host=${ET_ETM_TESTLINK_HOST} -Det.etm.lstcp.port=${ET_ETM_LSTCP_PORT} -Det.etm.lshttp.port=${ET_ETM_LSHTTP_PORT} -Det.etm.lsbeats.port=${ET_ETM_LSBEATS_PORT} -Det.etm.internal.lsbeats.port=${ET_ETM_INTERNAL_LSBEATS_PORT} package
mvnExit=$?
# Clean up environment
cd ../docker
#docker-compose -f docker-compose-complementary.yml -f ../docker/docker-compose-testlink.yml logs
docker network disconnect "${projectName}"_elastest ${containerId}
docker-compose -f docker-compose-complementary.yml -f ../docker/docker-compose-testlink.yml down
# Exit code of mvn command
exit $mvnExit