adding CI test for Docker Cloud

This commit is contained in:
Borja Burgos 2016-06-15 19:14:55 -07:00 committed by Ben Firshman
parent 34acff585a
commit 874a4bc79a
4 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,60 @@
version: '2'
services:
sut:
build: ./tests/
depends_on:
- voting-app
- result-app
- worker
networks:
- front-tier
voting-app:
build: ../voting-app/
ports: ["80"]
depends_on:
- redis
- db
networks:
- front-tier
- back-tier
result-app:
build: .
ports: ["80"]
depends_on:
- redis
- db
networks:
- front-tier
- back-tier
worker:
build: ../worker/
depends_on:
- redis
- db
networks:
- back-tier
redis:
image: redis:alpine
ports: ["6379"]
networks:
- back-tier
db:
image: postgres:9.4
volumes:
- "db-data:/var/lib/postgresql/data"
networks:
- back-tier
volumes:
db-data:
networks:
front-tier:
back-tier:

View File

@ -0,0 +1,5 @@
FROM node
RUN npm install -g phantomjs
ADD . /app
WORKDIR /app
CMD ["/app/tests.sh"]

View File

@ -0,0 +1,15 @@
var system = require('system');
var page = require('webpage').create();
var url = system.args[1];
page.onLoadFinished = function() {
setTimeout(function(){
console.log(page.content);
phantom.exit();
}, 1000);
};
page.open(url, function() {
page.evaluate(function() {
});
});

15
result-app/tests/tests.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
while ! timeout 1 bash -c "echo > /dev/tcp/voting-app/80"; do sleep 1; done
curl -sS -X POST --data "vote=a" http://voting-app > /dev/null
curl -sS -X POST --data "vote=b" http://voting-app > /dev/null
sleep 10
if phantomjs render.js http://result-app | grep -q '2 votes'; then
echo -e "\e[42m------------"
echo -e "\e[92mTests passed"
echo -e "\e[42m------------"
exit 0
fi
echo -e "\e[41m------------"
echo -e "\e[91mTests failed"
echo -e "\e[41m------------"
exit 1