Merge pull request #51 from clems4ever/fix-deployment

Fix deployment of example using dedicated script
This commit is contained in:
Clément Michaud 2017-07-16 16:31:08 +02:00 committed by GitHub
commit cdf6a73bdf
9 changed files with 81 additions and 59 deletions

View File

@ -3,8 +3,7 @@ services:
nginx: nginx:
image: nginx:alpine image: nginx:alpine
volumes: volumes:
- ./example/nginx/index.html:/usr/share/nginx/html/index.html - ./example/nginx/html:/usr/share/nginx/html
- ./example/nginx/secret.html:/usr/share/nginx/html/secret.html
- ./example/nginx/ssl:/etc/ssl - ./example/nginx/ssl:/etc/ssl
- ./example/nginx/nginx.conf:/etc/nginx/nginx.conf - ./example/nginx/nginx.conf:/etc/nginx/nginx.conf
ports: ports:

BIN
example/nginx/html/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,6 +1,8 @@
<!DOCTYPE>
<html> <html>
<head> <head>
<title>Home page</title> <title>Home page</title>
<link rel="icon" href="/icon.png" type="image/png" />
</head> </head>
<body> <body>
<h1>Access the secret</h1> <h1>Access the secret</h1>

View File

@ -1,6 +1,7 @@
<html> <html>
<head> <head>
<title>Secret</title> <title>Secret</title>
<link rel="icon" href="/icon.png" type="image/png" />
</head> </head>
<body> <body>
This is a very important secret!<br/> This is a very important secret!<br/>

View File

@ -1,14 +0,0 @@
#!/bin/bash
service_count=`docker ps -a | grep "Up " | wc -l`
if [ "${service_count}" -eq "5" ]
then
echo "Service are up and running."
exit 0
else
echo "Some services exited..."
docker ps -a
exit 1
fi

View File

@ -3,4 +3,4 @@
DC_SCRIPT=./scripts/example/dc-example.sh DC_SCRIPT=./scripts/example/dc-example.sh
$DC_SCRIPT build $DC_SCRIPT build
$DC_SCRIPT up -d $DC_SCRIPT up -d redis openldap authelia nginx

View File

@ -2,53 +2,88 @@
DC_SCRIPT=./scripts/example/dc-example.sh DC_SCRIPT=./scripts/example/dc-example.sh
run_services() { start_services() {
$DC_SCRIPT up -d redis openldap $DC_SCRIPT up -d redis openldap authelia nginx nginx-tests
sleep 2
$DC_SCRIPT up -d authelia nginx nginx-tests
sleep 3 sleep 3
} }
shut_services() {
$DC_SCRIPT down
}
expect_services_count() {
EXPECTED_COUNT=$1
service_count=`docker ps -a | grep "Up " | wc -l`
if [ "${service_count}" -eq "$EXPECTED_COUNT" ]
then
echo "Services are up and running."
else
echo "Some services exited..."
docker ps -a
exit 1
fi
}
run_integration_tests() {
echo "Prepare nginx-test configuration"
cat example/nginx/nginx.conf | sed 's/listen 443 ssl/listen 8080 ssl/g' | dd of="test/integration/nginx.conf"
echo "Build services images..."
$DC_SCRIPT build
echo "Start services..."
start_services
docker ps -a
echo "Display services logs..."
$DC_SCRIPT logs redis
$DC_SCRIPT logs openldap
$DC_SCRIPT logs nginx
$DC_SCRIPT logs nginx-tests
$DC_SCRIPT logs authelia
echo "Check number of services"
expect_services_count 5
echo "Run integration tests..."
$DC_SCRIPT run --rm integration-tests
echo "Shutdown services..."
shut_services
}
run_system_tests() {
echo "Start services..."
start_services
expect_services_count 5
./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system
shut_services
}
run_other_tests() {
echo "Test dev environment deployment (commands in README)"
npm install --only=dev
./node_modules/.bin/grunt build-dist
./scripts/example/deploy-example.sh
expect_services_count 4
}
set -e set -e
echo "Make sure services are not already running" echo "Make sure services are not already running"
$DC_SCRIPT down shut_services
# Prepare & run integration tests # Prepare & run integration tests
run_integration_tests
echo "Prepare nginx-test configuration"
cat example/nginx/nginx.conf | sed 's/listen 443 ssl/listen 8080 ssl/g' | dd of="test/integration/nginx.conf"
echo "Build services images..."
$DC_SCRIPT build
echo "Start services..."
run_services
docker ps -a
echo "Display services logs..."
$DC_SCRIPT logs redis
$DC_SCRIPT logs openldap
$DC_SCRIPT logs nginx
$DC_SCRIPT logs nginx-tests
$DC_SCRIPT logs authelia
echo "Check number of services"
./scripts/example/check-services.sh
echo "Run integration tests..."
$DC_SCRIPT run --rm integration-tests
echo "Shutdown services..."
$DC_SCRIPT down
# Prepare & test example from end user perspective # Prepare & test example from end user perspective
run_system_tests
echo "Start services..." # Other tests like executing the deployment script
run_services run_other_tests
./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system
$DC_SCRIPT down

View File

@ -4,7 +4,7 @@ html
head head
title Authelia - 2FA title Authelia - 2FA
meta(name="viewport", content="width=device-width, initial-scale=1.0")/ meta(name="viewport", content="width=device-width, initial-scale=1.0")/
link(rel="icon", href="/img/icon.png" type="image/gif" sizes="32x32")/ link(rel="icon", href="/img/icon.png" type="image/png" sizes="32x32")/
link(rel="stylesheet", type="text/css", href="/css/authelia.min.css")/ link(rel="stylesheet", type="text/css", href="/css/authelia.min.css")/
if redirection_url if redirection_url
<meta http-equiv="refresh" content="5;url=#{redirection_url}"> <meta http-equiv="refresh" content="5;url=#{redirection_url}">

View File

@ -11,8 +11,7 @@ services:
nginx-tests: nginx-tests:
image: nginx:alpine image: nginx:alpine
volumes: volumes:
- ./example/nginx/index.html:/usr/share/nginx/html/index.html - ./example/nginx/html:/usr/share/nginx/html
- ./example/nginx/secret.html:/usr/share/nginx/html/secret.html
- ./example/nginx/ssl:/etc/ssl - ./example/nginx/ssl:/etc/ssl
- ./test/integration/nginx.conf:/etc/nginx/nginx.conf - ./test/integration/nginx.conf:/etc/nginx/nginx.conf
expose: expose: