78 lines
3.2 KiB
YAML
78 lines
3.2 KiB
YAML
language: minimal
|
|
services: docker
|
|
|
|
env:
|
|
- DOCKER_COMPOSE_VERSION=1.20.1
|
|
|
|
before_install:
|
|
- sudo apt-get update
|
|
- sudo apt-get install -y expect jq
|
|
|
|
install:
|
|
# Install Docker Compose
|
|
- curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o "$HOME/bin/docker-compose"
|
|
- chmod +x "$HOME/bin/docker-compose"
|
|
- docker-compose --version
|
|
|
|
before_script:
|
|
# Build images
|
|
- docker-compose build
|
|
|
|
# Use built-in users with passwords set by 'elasticsearch-setup-passwords.exp'
|
|
- sed -i -e 's/\(elasticsearch.username:\) elastic/\1 kibana/g' -e 's/\(elasticsearch.password:\) changeme/\1 testpasswd/g' kibana/config/kibana.yml
|
|
- sed -i -e 's/\(xpack.monitoring.elasticsearch.username:\) elastic/\1 logstash_system/g' -e 's/\(xpack.monitoring.elasticsearch.password:\) changeme/\1 testpasswd/g' logstash/config/logstash.yml
|
|
- sed -i 's/\(password =>\) "changeme"/\1 "testpasswd"/g' logstash/pipeline/logstash.conf
|
|
- sed -i 's/\(elasticsearch.password:\) changeme/\1 testpasswd/g' extensions/app-search/config/app-search.yml
|
|
- sed -i 's/\(password:\) changeme/\1 testpasswd/g' extensions/apm-server/config/apm-server.yml
|
|
|
|
script:
|
|
# Core Elastic Stack
|
|
- docker-compose up -d elasticsearch
|
|
- sleep 30
|
|
- .travis/elasticsearch-setup-passwords.exp
|
|
- docker-compose up -d
|
|
- .travis/run-tests-core.sh
|
|
- docker-compose ps
|
|
- docker-compose logs elasticsearch
|
|
- docker-compose logs kibana
|
|
- docker-compose logs logstash
|
|
- docker-compose stop logstash kibana
|
|
|
|
# Extensions
|
|
# App Search
|
|
- docker-compose -f docker-compose.yml -f extensions/app-search/app-search-compose.yml up -d app-search
|
|
- .travis/run-tests-app-search.sh
|
|
- docker-compose -f docker-compose.yml -f extensions/app-search/app-search-compose.yml ps
|
|
- docker-compose -f docker-compose.yml -f extensions/app-search/app-search-compose.yml logs app-search
|
|
- docker-compose -f docker-compose.yml -f extensions/app-search/app-search-compose.yml stop app-search
|
|
# APM Server
|
|
- docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml up -d apm-server
|
|
- .travis/run-tests-apm-server.sh
|
|
- docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml ps
|
|
- docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml logs apm-server
|
|
- docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml stop apm-server
|
|
|
|
# Tear down
|
|
- >-
|
|
docker-compose
|
|
-f docker-compose.yml
|
|
-f extensions/app-search/app-search-compose.yml
|
|
-f extensions/apm-server/apm-server-compose.yml
|
|
down -v
|
|
|
|
# Swarm
|
|
- docker swarm init
|
|
- docker stack deploy -c ./docker-stack.yml elk
|
|
- docker service scale elk_kibana=0 --detach=false
|
|
- docker service scale elk_logstash=0 --detach=false
|
|
- sleep 40
|
|
- .travis/elasticsearch-setup-passwords.exp swarm
|
|
- docker service scale elk_kibana=1 --detach=false
|
|
- docker service scale elk_logstash=1 --detach=false
|
|
- .travis/run-tests-core.sh swarm
|
|
- docker stack services elk
|
|
- docker service logs elk_elasticsearch
|
|
- docker service logs elk_kibana
|
|
- docker service logs elk_logstash
|
|
- docker stack rm elk
|