Skip to content
Snippets Groups Projects
Commit 29dcad55 authored by Luca Johannes Nendel's avatar Luca Johannes Nendel
Browse files

Added integration stage

Added docker-test-service 
Added thing-creation-test 
Added mqtt-service-test 
Added dockertest.sh script to check if containers are running
parent 1ee193d7
No related branches found
No related tags found
2 merge requests!48Added docker-test-service for local CI/CD testing,!47Resolve "Expand CI/CD to test each docker-compose service"
......@@ -3,9 +3,9 @@ UID=1000
GID=1000
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_PORT=127.0.0.1:5432
MINIO_API_PORT=127.0.0.1:9000
MINIO_CONSOLE_PORT=127.0.0.1:9001
POSTGRES_PORT=5432
MINIO_API_PORT=9000
MINIO_CONSOLE_PORT=9001
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
KAFKA_PORT=127.0.0.1:9092
......@@ -56,4 +56,4 @@ MQTT_AUTH_POSTGRES_PASS=secret
MQTT_AUTH_POSTGRES_DB=postgres
# Set to verify-full or at least require when running in production
#MQTT_AUTH_PG_TLSMODE=verify-full
MQTT_AUTH_PG_TLSMODE=disable
\ No newline at end of file
MQTT_AUTH_PG_TLSMODE=disable
---
include: '.gitlab/ci/*.yml'
---
stages:
- "lint"
- "test"
- "integration"
- "deploy"
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_TLS_CERTDIR: "/certs"
services:
- "docker:20.10.16-dind"
......
#!/bin/bash
running="$(docker-compose ps --services --filter "status=running")"
services="$(docker-compose ps --services)"
if [ "$running" != "$services" ]; then
echo "Following services are not running:"
# Bash specific
comm -13 <(sort <<<"$running") <(sort <<<"$services")
else
echo "All services are running"
fi
---
docker-service-test:
image: "docker:20.10.16"
stage: "integration"
before_script:
- "apk add --no-cache bash"
script:
- "mv .env.example .env"
- "cp .env .gitlab/ci/.env"
- "echo $GROUP_TOKEN | docker login \
$SCHEDULER_REGISTRY -u $GROUP_USER --password-stdin"
- "echo $GROUP_TOKEN | docker login \
$DISPATCHER_REGISTRY -u $GROUP_USER --password-stdin"
- "docker-compose up -d"
- "sleep 15"
- "docker ps"
- "cd .gitlab/ci"
- "chmod +x ./dockertest.sh"
- "./dockertest.sh"
tags:
- "hifis"
mqtt-service-test:
image: "docker:20.10.16"
stage: "integration"
script:
- "mv .env.example .env"
- "cp .env .gitlab/ci/.env"
- "echo $GROUP_TOKEN | docker login \
$SCHEDULER_REGISTRY -u $GROUP_USER --password-stdin"
- "echo $GROUP_TOKEN | docker login \
$DISPATCHER_REGISTRY -u $GROUP_USER --password-stdin"
- "docker-compose up -d"
- "sleep 15"
- "docker-compose exec -T mqtt-broker
bash -c $'echo `echo -n integrate && /mosquitto/pw -p cicd` >>
/mosquitto-auth/mosquitto.passwd'"
- "docker-compose restart mqtt-broker"
- 'echo "very nice data!" | docker-compose exec -T mqtt-broker sh -c
"mosquitto_pub -h mqtt-broker -t
mqtt_ingest/integrate/beautiful/sensor/1 -u mqtt -P mqtt -s"'
- 'docker-compose logs mqtt-cat'
tags:
- "hifis"
thing-creation-test:
image: "docker:20.10.16-dind"
stage: "integration"
before_script:
- "apk add --no-cache curl"
- "apk add --no-cache postgresql"
script:
- "mv .env.example .env"
- "cp .env .gitlab/ci/.env"
- "echo $GROUP_TOKEN | docker login \
$SCHEDULER_REGISTRY -u $GROUP_USER --password-stdin"
- "echo $GROUP_TOKEN | docker login \
$DISPATCHER_REGISTRY -u $GROUP_USER --password-stdin"
- "docker-compose up -d"
- "sleep 30"
- "docker-compose logs object-storage"
- 'cat thing-event-msg.json | docker-compose exec -T mqtt-broker sh -c
"mosquitto_pub -t thing_creation -u mqtt -P mqtt -s"'
- "curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc"
- "chmod +x $HOME/minio-binaries/mc"
- "export PATH=$PATH:$HOME/minio-binaries/"
- "mc alias set minio http://docker:9000 minioadmin minioadmin"
- "mc tag list minio/thedoors-057d8bba-40b3-11ec-a337-125e5a40a849"
- "psql 'postgresql://postgres:postgres@docker:5432' -l"
- "psql 'postgresql://postgres:postgres@docker:5432' -tAc
\"SELECT 1 FROM pg_roles WHERE
rolname='myfirstproject_6185a5b8462711ec910a125e5a40a845'\""
tags:
- "hifis"
---
test-containers:
image: "docker:20.10.16"
stage: "test"
script:
- "docker info"
- "echo $GROUP_TOKEN | docker login \
$SCHEDULER_REGISTRY -u $GROUP_USER --password-stdin"
- "echo $GROUP_TOKEN | docker login \
$DISPATCHER_REGISTRY -u $GROUP_USER --password-stdin"
- "mv .env.example .env"
- "docker-compose up -d"
tags:
- "hifis"
......@@ -54,4 +54,4 @@
}
]
}
}
\ No newline at end of file
}
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