-
Notifications
You must be signed in to change notification settings - Fork 612
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI: Update the scripts for running the API tests on Jenkins
Use the common scripts for launching the Elasticsearch cluster and executing up the tests.
- Loading branch information
Showing
12 changed files
with
502 additions
and
131 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIDSTCCAjGgAwIBAgIUGqPn96yNRroRX2uBi+m999M4GwIwDQYJKoZIhvcNAQEL | ||
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l | ||
cmF0ZWQgQ0EwHhcNMjAwNDI5MDUyMzI2WhcNMjEwNDI5MDUyMzI2WjA0MTIwMAYD | ||
VQQDEylFbGFzdGljIENlcnRpZmljYXRlIFRvb2wgQXV0b2dlbmVyYXRlZCBDQTCC | ||
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIsS6eBX4PK3xiU5+mWG2pj6 | ||
T/3GzOkYRmHPqOsIdVylKeqg5p42y8u3UrSk4pqWg7oifwZTJkOQOuoZMoqAE9C1 | ||
lwHJfdvyltjg/BAj4+3s3QqxWWMy1ATNXvYYOxhgC5F7URLYKdEKxYjWkZIxChcy | ||
2oEpYSezDb1KnnraDz+snawTUVAqiHgsjmEMqueJZGj78dULf6kgsDRbGVecVy+B | ||
D9aFUgnB0Tb8i2BbU90LwknKqJGmQ0JwMRBWoGXJ/jhOr1bYhx8RUWZVglF/Q6MZ | ||
Es63oW45POm+OLlZk8Lnvzth7DS37v8wPID8cc00Dsb1g2s7ValacesdFn8huyUC | ||
AwEAAaNTMFEwHQYDVR0OBBYEFAoBzyNNN2Uz/J/pQP6o8Mj2OvEWMB8GA1UdIwQY | ||
MBaAFAoBzyNNN2Uz/J/pQP6o8Mj2OvEWMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI | ||
hvcNAQELBQADggEBACV43c28cDSpX1FICI37pITRRzw4O9PG/HKrf307/jIieHTb | ||
HPR6W27YZcwaI5Mtut6DkloM6I44uC87zqzCpxnSdmhEzMIcKjQbIBZEItvrJURd | ||
2ll4RcXrAEznbwng9Z90W3WOgWjX91AA6Y/TCYgCxa9/qA99RLvJlU4VkQ6QUE4X | ||
e2nSdBBBTUgARVM+0nDxPvE00GR598UA/UFiXtKJNZv3BNt5viPefFYXItuzlmsQ | ||
7ZkLqGOYcHrH/rdSzS4R2D1WjlzPBx4z5D7+3XQV2mjRJmahKZj8F0icnZPq9Uk2 | ||
nehNyMis+kGplpUspadB+HUKt6uaCwR+ELOPyhU= | ||
MIIDSjCCAjKgAwIBAgIVAJQLm8V2LcaCTHUcoIfO+KL63nG3MA0GCSqGSIb3DQEB | ||
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu | ||
ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1N1oXDTIzMDIyNTA1NTA1N1owNDEyMDAG | ||
A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew | ||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyajkPvGtUOE5M1OowQfB | ||
kWVrWjo1+LIxzgCeRHp0YztLtdVJ0sk2xoSrt2uZpxcPepdyOseLTjFJex1D2yCR | ||
AEniIqcFif4G72nDih2LlbhpUe/+/MTryj8ZTkFTzI+eMmbQi5FFMaH+kwufmdt/ | ||
5/w8YazO18SxxJUlzMqzfNUrhM8vvvVdxgboU7PWhk28wZHCMHQovomHmzclhRpF | ||
N0FMktA98vHHeRjH19P7rNhifSd7hZzoH3H148HVAKoPgqnZ6vW2O2YfAWOP6ulq | ||
cyszr57p8fS9B2wSdlWW7nVHU1JuKcYD67CxbBS23BeGFgCj4tiNrmxO8S5Yf85v | ||
AgMBAAGjUzBRMB0GA1UdDgQWBBSWAlip9eoPmnG4p4OFZeOUBlAbNDAfBgNVHSME | ||
GDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG | ||
SIb3DQEBCwUAA4IBAQA19qqrMTWl7YyId+LR/QIHDrP4jfxmrEELrAL58q5Epc1k | ||
XxZLzOBSXoBfBrPdv+3XklWqXrZjKWfdkux0Xmjnl4qul+srrZDLJVZG3I7IrITh | ||
AmQUmL9MuPiMnAcxoGZp1xpijtW8Qmd2qnambbljWfkuVaa4hcVRfrAX6TciIQ21 | ||
bS5aeLGrPqR14h30YzDp0RMmTujEa1o6ExN0+RSTkE9m89Q6WdM69az8JW7YkWqm | ||
I+UCG3TcLd3TXmN1zNQkq4y2ObDK4Sxy/2p6yFPI1Fds5w/zLfBOvvPQY61vEqs8 | ||
SCCcQIe7f6NDpIRIBlty1C9IaEHj7edyHjF6rtYb | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIDSTCCAjGgAwIBAgIUGqPn96yNRroRX2uBi+m999M4GwIwDQYJKoZIhvcNAQEL | ||
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l | ||
cmF0ZWQgQ0EwHhcNMjAwNDI5MDUyMzI2WhcNMjEwNDI5MDUyMzI2WjA0MTIwMAYD | ||
VQQDEylFbGFzdGljIENlcnRpZmljYXRlIFRvb2wgQXV0b2dlbmVyYXRlZCBDQTCC | ||
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIsS6eBX4PK3xiU5+mWG2pj6 | ||
T/3GzOkYRmHPqOsIdVylKeqg5p42y8u3UrSk4pqWg7oifwZTJkOQOuoZMoqAE9C1 | ||
lwHJfdvyltjg/BAj4+3s3QqxWWMy1ATNXvYYOxhgC5F7URLYKdEKxYjWkZIxChcy | ||
2oEpYSezDb1KnnraDz+snawTUVAqiHgsjmEMqueJZGj78dULf6kgsDRbGVecVy+B | ||
D9aFUgnB0Tb8i2BbU90LwknKqJGmQ0JwMRBWoGXJ/jhOr1bYhx8RUWZVglF/Q6MZ | ||
Es63oW45POm+OLlZk8Lnvzth7DS37v8wPID8cc00Dsb1g2s7ValacesdFn8huyUC | ||
AwEAAaNTMFEwHQYDVR0OBBYEFAoBzyNNN2Uz/J/pQP6o8Mj2OvEWMB8GA1UdIwQY | ||
MBaAFAoBzyNNN2Uz/J/pQP6o8Mj2OvEWMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI | ||
hvcNAQELBQADggEBACV43c28cDSpX1FICI37pITRRzw4O9PG/HKrf307/jIieHTb | ||
HPR6W27YZcwaI5Mtut6DkloM6I44uC87zqzCpxnSdmhEzMIcKjQbIBZEItvrJURd | ||
2ll4RcXrAEznbwng9Z90W3WOgWjX91AA6Y/TCYgCxa9/qA99RLvJlU4VkQ6QUE4X | ||
e2nSdBBBTUgARVM+0nDxPvE00GR598UA/UFiXtKJNZv3BNt5viPefFYXItuzlmsQ | ||
7ZkLqGOYcHrH/rdSzS4R2D1WjlzPBx4z5D7+3XQV2mjRJmahKZj8F0icnZPq9Uk2 | ||
nehNyMis+kGplpUspadB+HUKt6uaCwR+ELOPyhU= | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIDIzCCAgugAwIBAgIVAMTO6uVx9dLox2t0lY4IcBKZXb5WMA0GCSqGSIb3DQEB | ||
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu | ||
ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1OVoXDTIzMDIyNTA1NTA1OVowEzERMA8G | ||
A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDK | ||
YLTOikVENiN/qYupOsoXd7VYYnryyfCC/dK4FC2aozkbqjFzBdvPGAasoc4yEiH5 | ||
CGeXMgJuOjk1maqetmdIsw00j4oHJviYsnGXzxxS5swhD7spcW4Uk4V4tAUzrbfT | ||
vW/2WW/yYCLe5phVb2chz0jL+WYb4bBmdfs/t6RtP9RqsplYAmVp3gZ6lt2YNtvE | ||
k9gz0TVk3DuO1TquIClfRYUjuywS6xDSvxJ8Jl91EfDWM8QU+9F+YAtiv74xl2U3 | ||
P0wwMqNvMxf9/3ak3lTQGsgO4L6cwbKpVLMMzxSVunZz/sgl19xy3qHHz1Qr2MjJ | ||
/2c2J7vahUL4NPRkjJClAgMBAAGjTTBLMB0GA1UdDgQWBBS2Wn8E2VZv4oenY+pR | ||
O8G3zfQXhzAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAJBgNVHRME | ||
AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAvwPvCiJJ6v9jYcyvYY8I3gP0oCwrylpRL | ||
n91UlgRSHUmuAObyOoVN5518gSV/bTU2SDrstcLkLFxHvnfpoGJoxsQEHuGxwDRI | ||
nhYNd62EKLerehNM/F9ILKmvTh8f6QPCzjUuExTXv+63l2Sr6dBS7FHsGs6UKUYO | ||
llM/y9wMZ1LCuZuBg9RhtgpFXRSgDM9Z7Begu0d/BPX9od/qAeZg9Arz4rwUiCN4 | ||
IJOMEBEPi5q1tgeS0Fb1Grpqd0Uz5tZKtEHNKzLG+zSMmkneL62Nk2HsmEFZKwzg | ||
u2pU42UaUE596G6o78s1aLn9ICcElPHTjiuZNSiyuu9IzvFDjGQw | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
-----BEGIN RSA PRIVATE KEY----- | ||
MIIEogIBAAKCAQEAymC0zopFRDYjf6mLqTrKF3e1WGJ68snwgv3SuBQtmqM5G6ox | ||
cwXbzxgGrKHOMhIh+QhnlzICbjo5NZmqnrZnSLMNNI+KByb4mLJxl88cUubMIQ+7 | ||
KXFuFJOFeLQFM623071v9llv8mAi3uaYVW9nIc9Iy/lmG+GwZnX7P7ekbT/UarKZ | ||
WAJlad4GepbdmDbbxJPYM9E1ZNw7jtU6riApX0WFI7ssEusQ0r8SfCZfdRHw1jPE | ||
FPvRfmALYr++MZdlNz9MMDKjbzMX/f92pN5U0BrIDuC+nMGyqVSzDM8Ulbp2c/7I | ||
Jdfcct6hx89UK9jIyf9nNie72oVC+DT0ZIyQpQIDAQABAoIBADAh7f7NjgnaInlD | ||
ds8KB3SraPsbeQhzlPtiqRJU4j/MIFH/GYG03AGWQkget67a9y+GmzSvlTpoKKEh | ||
6h2TXl9BDpv4o6ht0WRn1HJ5tM/Wyqf2WNpTew3zxCPgFPikkXsPrChYPzLTQJfp | ||
GkP/mfTFmxfAOlPZSp4j41zVLYs53eDkAegFPVfKSr1XNNJ3QODLPcIBfxBYsiC9 | ||
oU+jRW8xYuj31cEl5k5UqrChJ1rm3mt6cguqXKbISuoSvi13gXI6DccqhuLAU+Kr | ||
ib2XYrRP+pWocZo/pM9WUVoNGtFxfY88sAQtvG6gDKo2AURtFyq84Ow0h9mdixV/ | ||
gRIDPcECgYEA5nEqE3OKuG9WuUFGXvjtn4C0F6JjflYWh7AbX51S4F6LKrW6/XHL | ||
Rg4BtF+XReT7OQ6llsV8kZeUxsUckkgDLzSaA8lysNDV5KkhAWHfRqH//QKFbqZi | ||
JL9t3x63Qt81US8s2hQk3khPYTRM8ZB3xHiXvZYSGC/0x/DxfEO3QJECgYEA4NK5 | ||
sxtrat8sFz6SK9nWEKimPjDVzxJ0hxdX4tRq/JdOO5RncawVqt6TNP9gTuxfBvhW | ||
MhJYEsQj8iUoL1dxo9d1eP8HEANNV0iX5OBvJNmgBp+2OyRSyr+PA55+wAxYuAE7 | ||
QKaitOjW57fpArNRt2hQyiSzTuqUFRWTWJHCWNUCgYAEurPTXF6vdFGCUc2g61jt | ||
GhYYGhQSpq+lrz6Qksj9o9MVWE9zHh++21C7o+6V16I0RJGva3QoBMVf4vG4KtQt | ||
5tV2WG8LI+4P2Ey+G4UajP6U8bVNVQrUmD0oBBhcvfn5JY+1Fg6/pRpD82/U0VMz | ||
7AmpMWhDqNBMPiymkTk0kQKBgCuWb05cSI0ly4SOKwS5bRk5uVFhYnKNH255hh6C | ||
FGP4acB/WzbcqC7CjEPAJ0nl5d6SExQOHmk1AcsWjR3wlCWxxiK5PwNJwJrlhh1n | ||
reS1FKN0H36D4lFQpkeLWQOe4Sx7gKNeKzlr0w6Fx3Uwku0+Gju2tdTdAey8jB6l | ||
08opAoGAEe1AuR/OFp2xw6V8TH9UHkkpGxy+OrXI6PX6tgk29PgB+uiMu4RwbjVz | ||
1di1KKq2XecAilVbnyqY+edADxYGbSnci9x5wQRIebfMi3VXKtV8NQBv2as6qwtW | ||
JDcQUWotOHjpdvmfJWWkcBhbAKrgX8ukww00ZI/lC3/rmkGnBBg= | ||
-----END RSA PRIVATE KEY----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,108 +1,26 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -eo pipefail | ||
|
||
if [[ -z $TEST_SUITE ]]; then | ||
echo -e "\033[31;1mERROR:\033[0m Required environment variable [TEST_SUITE] not set\033[0m" | ||
exit 1 | ||
fi | ||
|
||
if [[ -z $ELASTICSEARCH_VERSION ]]; then | ||
echo -e "\033[31;1mERROR:\033[0m Required environment variable [ELASTICSEARCH_VERSION] not set\033[0m" | ||
exit 1 | ||
fi | ||
|
||
if [[ $TEST_SUITE != "core" && $TEST_SUITE != "xpack" ]]; then | ||
echo -e "\033[31;1mERROR:\033[0m Unknown value [$TEST_SUITE] for [TEST_SUITE]\033[0m" | ||
exit 1 | ||
# | ||
# Version 1.1 | ||
# - Moved to .ci folder and seperated out `run-repository.sh` | ||
# - Add `$RUNSCRIPTS` env var for running Elasticsearch dependent products | ||
|
||
export STACK_VERSION="$ELASTICSEARCH_VERSION" | ||
|
||
script_path=$(dirname $(realpath -s $0)) | ||
source $script_path/scripts/functions/imports.sh | ||
set -euo pipefail | ||
|
||
DETACH=true bash .jenkins/scripts/run-elasticsearch.sh | ||
|
||
if [[ -n "$RUNSCRIPTS" ]]; then | ||
for RUNSCRIPT in ${RUNSCRIPTS//,/ } ; do | ||
echo -e "\033[1m>>>>> Running run-$RUNSCRIPT.sh >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" | ||
CONTAINER_NAME=${RUNSCRIPT} \ | ||
DETACH=true \ | ||
bash .jenkins/scripts/run-${RUNSCRIPT}.sh | ||
done | ||
fi | ||
|
||
if [[ $TEST_SUITE == "core" ]]; then | ||
elasticsearch_image=elasticsearch-oss:$ELASTICSEARCH_VERSION | ||
elasticsearch_url=http://es1:9200 | ||
fi | ||
|
||
if [[ $TEST_SUITE == "xpack" ]]; then | ||
elasticsearch_image=elasticsearch:$ELASTICSEARCH_VERSION | ||
elasticsearch_url=https://elastic:elastic@es1:9200 | ||
fi | ||
|
||
function cleanup { | ||
docker container rm --force --volumes es1 > /dev/null 2>&1 || true | ||
docker container rm --force --volumes elasticsearch-source > /dev/null 2>&1 || true | ||
docker container rm --force --volumes go-elasticsearch > /dev/null 2>&1 || true | ||
} | ||
|
||
trap cleanup EXIT | ||
|
||
TIMEFORMAT="(Duration: %0lR)" | ||
|
||
echo -e "\033[1m>>>>> SETUP [$TEST_SUITE] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" | ||
|
||
# Build the go-elasticsearch image | ||
docker build --file Dockerfile --tag elastic/go-elasticsearch . | ||
|
||
# Launch a single Elasticsearch node | ||
(make cluster detach=true version=$elasticsearch_image) | ||
|
||
# Store the Elasticsearch version and build hash | ||
ELASTICSEARCH_BUILD_VERSION=$(docker run --network elasticsearch --rm appropriate/curl -sSk $elasticsearch_url | docker run -i --rm stedolan/jq -r '.version.number') | ||
ELASTICSEARCH_BUILD_HASH=$(docker run --network elasticsearch --rm appropriate/curl -sSk $elasticsearch_url | docker run -i --rm stedolan/jq -r '.version.build_hash') | ||
|
||
# Download Elasticsearch source code at ELASTICSEARCH_BUILD_HASH and store it in a container | ||
echo -e ">>>>> Downloading Elasticsearch repository @ $ELASTICSEARCH_BUILD_HASH..." | ||
time docker run --rm appropriate/curl --retry 3 -sSL "https://github.com/elastic/elasticsearch/archive/$ELASTICSEARCH_BUILD_HASH.zip" > "/tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" | ||
echo -e ">>>>> Extracting and storing to [elasticsearch-source] container..." | ||
time docker run --volume=/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch unzip -q -o "elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" '*.properties' '*.json' '*.y*ml' | ||
docker run --volume=/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch /bin/sh -c " | ||
rm -rf /tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip | ||
rm -rf /tmp/elasticsearch/ | ||
mv /tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH* /tmp/elasticsearch/ | ||
" | ||
docker create --name elasticsearch-source --volume /elasticsearch-source --name elasticsearch-source alpine /bin/true | ||
docker cp /tmp/elasticsearch elasticsearch-source:/elasticsearch-source | ||
|
||
# Launch the container; actual commands are called with "docker exec" | ||
docker run \ | ||
--name go-elasticsearch \ | ||
--network elasticsearch \ | ||
--env "ELASTICSEARCH_URL=$elasticsearch_url" \ | ||
--env "ELASTICSEARCH_VERSION=$ELASTICSEARCH_VERSION" \ | ||
--env "ELASTICSEARCH_BUILD_VERSION=$ELASTICSEARCH_BUILD_VERSION" \ | ||
--env "ELASTICSEARCH_BUILD_HASH=$ELASTICSEARCH_BUILD_HASH" \ | ||
--env "WORKSPACE=${WORKSPACE:-/workspace}" \ | ||
--volume "/go-elasticsearch" \ | ||
--volume "${WORKSPACE:-workspace}:${WORKSPACE:-/workspace}" \ | ||
--volumes-from "elasticsearch-source" \ | ||
--rm \ | ||
--detach \ | ||
elastic/go-elasticsearch sleep 3600 | ||
|
||
# Run the tests | ||
# NOTE: Conditions needed to prevent early exit due to the 'set -e' option | ||
status=100 | ||
case $TEST_SUITE in | ||
"core" ) | ||
if bash .jenkins/tests-core.sh; then | ||
status=$? | ||
else | ||
status=$? | ||
fi | ||
;; | ||
"xpack" ) | ||
if bash .jenkins/tests-xpack.sh; then | ||
status=$? | ||
else | ||
status=$? | ||
fi | ||
;; | ||
esac | ||
|
||
# Report status and exit | ||
if [[ $status == "0" ]]; then | ||
echo -e "\n\033[32;1mSUCCESS\033[0m" | ||
exit 0 | ||
else | ||
echo -e "\n\033[31;1mFAILURE\033[0m" | ||
exit $status | ||
fi | ||
echo | ||
echo -e "\033[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" | ||
bash .jenkins/scripts/run-repository.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Shared cleanup routines between different steps | ||
# | ||
# Please source .ci/functions/imports.sh as a whole not just this file | ||
# | ||
# Version 1.0.0 | ||
# - Initial version after refactor | ||
|
||
function cleanup_volume { | ||
if [[ "$(docker volume ls -q -f name=$1)" ]]; then | ||
echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m" | ||
(docker volume rm "$1") || true | ||
fi | ||
} | ||
function container_running { | ||
if [[ "$(docker ps -q -f name=$1)" ]]; then | ||
return 0; | ||
else return 1; | ||
fi | ||
} | ||
function cleanup_node { | ||
if container_running "$1"; then | ||
echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m" | ||
(docker container rm --force --volumes "$1") || true | ||
fi | ||
if [[ -n "$1" ]]; then | ||
echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m" | ||
cleanup_volume "$1-${suffix}-data" | ||
fi | ||
} | ||
function cleanup_network { | ||
if [[ "$(docker network ls -q -f name=$1)" ]]; then | ||
echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m" | ||
(docker network rm "$1") || true | ||
fi | ||
} | ||
|
||
function cleanup_trap { | ||
status=$? | ||
set +x | ||
if [[ "$DETACH" != "true" ]]; then | ||
echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m" | ||
cleanup_all_in_network "$1" | ||
fi | ||
# status is 0 or SIGINT | ||
if [[ "$status" == "0" || "$status" == "130" ]]; then | ||
echo -e "\n\033[32;1mSUCCESS run-tests\033[0m" | ||
exit 0 | ||
else | ||
echo -e "\n\033[31;1mFAILURE during run-tests\033[0m" | ||
exit ${status} | ||
fi | ||
}; | ||
function cleanup_all_in_network { | ||
|
||
if [[ -z "$(docker network ls -q -f name="^$1\$")" ]]; then | ||
echo -e "\033[34;1mINFO:\033[0m $1 is already deleted\033[0m" | ||
return 0 | ||
fi | ||
containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' $1) | ||
while read -r container; do | ||
cleanup_node "$container" | ||
done <<< "$containers" | ||
cleanup_network $1 | ||
echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m" | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Sets up all the common variables and imports relevant functions | ||
# | ||
# Version 1.0.1 | ||
# - Initial version after refactor | ||
# - Validate STACK_VERSION asap | ||
|
||
function require_stack_version() { | ||
if [[ -z $STACK_VERSION ]]; then | ||
echo -e "\033[31;1mERROR:\033[0m Required environment variable [STACK_VERSION] not set\033[0m" | ||
exit 1 | ||
fi | ||
} | ||
|
||
require_stack_version | ||
|
||
if [[ -z $es_node_name ]]; then | ||
# only set these once | ||
set -euo pipefail | ||
export TEST_SUITE=${TEST_SUITE-oss} | ||
export RUNSCRIPTS=${RUNSCRIPTS-} | ||
export DETACH=${DETACH-false} | ||
export CLEANUP=${CLEANUP-false} | ||
|
||
export es_node_name=instance | ||
export elastic_password=changeme | ||
export elasticsearch_image=elasticsearch | ||
export elasticsearch_url=https://elastic:${elastic_password}@${es_node_name}:9200 | ||
if [[ $TEST_SUITE != "xpack" ]]; then | ||
export elasticsearch_image=elasticsearch-${TEST_SUITE} | ||
export elasticsearch_url=http://${es_node_name}:9200 | ||
fi | ||
export external_elasticsearch_url=${elasticsearch_url/$es_node_name/localhost} | ||
export elasticsearch_container="${elasticsearch_image}:${STACK_VERSION}" | ||
|
||
export suffix=rest-test | ||
export moniker=$(echo "$elasticsearch_container" | tr -C "[:alnum:]" '-') | ||
export network_name=${moniker}${suffix} | ||
|
||
export ssl_cert="${script_path}/certs/testnode.crt" | ||
export ssl_key="${script_path}/certs/testnode.key" | ||
export ssl_ca="${script_path}/certs/ca.crt" | ||
|
||
fi | ||
|
||
export script_path="$PWD/.jenkins" | ||
source $script_path/scripts/functions/cleanup.sh | ||
source $script_path/scripts/functions/wait-for-container.sh | ||
trap "cleanup_trap ${network_name}" EXIT | ||
|
||
|
||
if [[ "$CLEANUP" == "true" ]]; then | ||
cleanup_all_in_network $network_name | ||
exit 0 | ||
fi | ||
|
||
echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m" | ||
docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name" | ||
|
Oops, something went wrong.