From e644fe7b7b0aeda1d05f4e4881d796646fc31ee1 Mon Sep 17 00:00:00 2001 From: FrozenDragoon Date: Tue, 8 Aug 2017 09:03:12 -0500 Subject: [PATCH] Split example scripts, allow running example using pre-built docker container (example-dockerhub) or build build from source, as it is now (example-commit). --- README.md | 10 ++++++++-- example/authelia/docker-compose.yml | 12 ++++++++++++ scripts/{example => example-commit}/dc-example.sh | 0 .../{example => example-commit}/deploy-example.sh | 2 +- scripts/example-commit/undeploy-example.sh | 5 +++++ scripts/example-dockerhub/dc-example.sh | 11 +++++++++++ scripts/example-dockerhub/deploy-example.sh | 6 ++++++ scripts/example-dockerhub/undeploy-example.sh | 5 +++++ scripts/example/undeploy-example.sh | 5 ----- scripts/integration-tests.sh | 13 +++++++++++-- test/features/step_definitions/hooks.ts | 4 ++-- test/features/step_definitions/resilience.ts | 2 +- 12 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 example/authelia/docker-compose.yml rename scripts/{example => example-commit}/dc-example.sh (100%) rename scripts/{example => example-commit}/deploy-example.sh (63%) create mode 100755 scripts/example-commit/undeploy-example.sh create mode 100755 scripts/example-dockerhub/dc-example.sh create mode 100755 scripts/example-dockerhub/deploy-example.sh create mode 100755 scripts/example-dockerhub/undeploy-example.sh delete mode 100755 scripts/example/undeploy-example.sh diff --git a/README.md b/README.md index bd61219d..25c99c96 100644 --- a/README.md +++ b/README.md @@ -102,12 +102,18 @@ Add the following lines to your **/etc/hosts** to alias multiple subdomains so t ### Run it! -Deploy **Authelia** example with the following command: +Deploy the **Authelia** example with one of the following commands: + +Build Docker container from current commit: npm install --only=dev ./node_modules/.bin/grunt build-dist - ./scripts/example/deploy-example.sh + ./scripts/example-commit/deploy-example.sh +Use provided container on [DockerHub](https://hub.docker.com/r/clems4ever/authelia/): + + ./scripts/example-dockerhub/deploy-example.sh + After few seconds the services should be running and you should be able to visit [https://home.test.local:8080/](https://home.test.local:8080/). diff --git a/example/authelia/docker-compose.yml b/example/authelia/docker-compose.yml new file mode 100644 index 00000000..9f1f1cb5 --- /dev/null +++ b/example/authelia/docker-compose.yml @@ -0,0 +1,12 @@ +version: '2' +services: + authelia: + image: clems4ever/authelia:latest + restart: always + volumes: + - ./config.template.yml:/etc/authelia/config.yml:ro + - ./notifications:/var/lib/authelia/notifications + depends_on: + - redis + networks: + - example-network diff --git a/scripts/example/dc-example.sh b/scripts/example-commit/dc-example.sh similarity index 100% rename from scripts/example/dc-example.sh rename to scripts/example-commit/dc-example.sh diff --git a/scripts/example/deploy-example.sh b/scripts/example-commit/deploy-example.sh similarity index 63% rename from scripts/example/deploy-example.sh rename to scripts/example-commit/deploy-example.sh index bae41949..d0cfd5dd 100755 --- a/scripts/example/deploy-example.sh +++ b/scripts/example-commit/deploy-example.sh @@ -1,6 +1,6 @@ #!/bin/bash -DC_SCRIPT=./scripts/example/dc-example.sh +DC_SCRIPT=./scripts/example-commit/dc-example.sh $DC_SCRIPT build $DC_SCRIPT up -d mongo redis openldap authelia nginx diff --git a/scripts/example-commit/undeploy-example.sh b/scripts/example-commit/undeploy-example.sh new file mode 100755 index 00000000..3ef607fe --- /dev/null +++ b/scripts/example-commit/undeploy-example.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +DC_SCRIPT=./scripts/example-commit/dc-example.sh + +$DC_SCRIPT down diff --git a/scripts/example-dockerhub/dc-example.sh b/scripts/example-dockerhub/dc-example.sh new file mode 100755 index 00000000..b72c6a37 --- /dev/null +++ b/scripts/example-dockerhub/dc-example.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +docker-compose \ + -f docker-compose.base.yml \ + -f example/authelia/docker-compose.yml \ + -f example/mongo/docker-compose.yml \ + -f example/redis/docker-compose.yml \ + -f example/nginx/docker-compose.yml \ + -f example/ldap/docker-compose.yml $* diff --git a/scripts/example-dockerhub/deploy-example.sh b/scripts/example-dockerhub/deploy-example.sh new file mode 100755 index 00000000..3b71fd1b --- /dev/null +++ b/scripts/example-dockerhub/deploy-example.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +DC_SCRIPT=./scripts/example-dockerhub/dc-example.sh + +#$DC_SCRIPT build +$DC_SCRIPT up -d mongo redis openldap authelia nginx diff --git a/scripts/example-dockerhub/undeploy-example.sh b/scripts/example-dockerhub/undeploy-example.sh new file mode 100755 index 00000000..1b943f39 --- /dev/null +++ b/scripts/example-dockerhub/undeploy-example.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +DC_SCRIPT=./scripts/example-dockerhub/dc-example.sh + +$DC_SCRIPT down diff --git a/scripts/example/undeploy-example.sh b/scripts/example/undeploy-example.sh deleted file mode 100755 index 0c3a6f7b..00000000 --- a/scripts/example/undeploy-example.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -DC_SCRIPT=./scripts/example/dc-example.sh - -$DC_SCRIPT down diff --git a/scripts/integration-tests.sh b/scripts/integration-tests.sh index 10d4973d..84675b53 100755 --- a/scripts/integration-tests.sh +++ b/scripts/integration-tests.sh @@ -1,6 +1,6 @@ #!/bin/bash -DC_SCRIPT=./scripts/example/dc-example.sh +DC_SCRIPT=./scripts/example-commit/dc-example.sh EXPECTED_SERVICES_COUNT=5 start_services() { @@ -40,7 +40,13 @@ 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 + ./scripts/example-commit/deploy-example.sh + expect_services_count 5 +} + +run_other_tests_docker() { + echo "Test dev docker deployment (commands in README)" + ./scripts/example-dockerhub/deploy-example.sh expect_services_count 5 } @@ -58,3 +64,6 @@ run_integration_tests # Other tests like executing the deployment script run_other_tests + +# Test example with precompiled container +run_other_tests_docker \ No newline at end of file diff --git a/test/features/step_definitions/hooks.ts b/test/features/step_definitions/hooks.ts index 708bd3ae..b334ea2a 100644 --- a/test/features/step_definitions/hooks.ts +++ b/test/features/step_definitions/hooks.ts @@ -11,10 +11,10 @@ Cucumber.defineSupportCode(function({ After, Before }) { }); Before({tags: "@needs-test-config", timeout: 15 * 1000}, function () { - return exec("./scripts/example/dc-example.sh -f docker-compose.test.yml up -d authelia && sleep 2"); + return exec("./scripts/example-commit/dc-example.sh -f docker-compose.test.yml up -d authelia && sleep 2"); }); After({tags: "@needs-test-config", timeout: 15 * 1000}, function () { - return exec("./scripts/example/dc-example.sh up -d authelia && sleep 2"); + return exec("./scripts/example-commit/dc-example.sh up -d authelia && sleep 2"); }); }); \ No newline at end of file diff --git a/test/features/step_definitions/resilience.ts b/test/features/step_definitions/resilience.ts index 1eb5f15a..ad75a143 100644 --- a/test/features/step_definitions/resilience.ts +++ b/test/features/step_definitions/resilience.ts @@ -7,6 +7,6 @@ import BluebirdPromise = require("bluebird"); Cucumber.defineSupportCode(function ({ Given, When, Then }) { When(/^the application restarts$/, {timeout: 15 * 1000}, function () { const exec = BluebirdPromise.promisify(ChildProcess.exec); - return exec("./scripts/example/dc-example.sh restart authelia && sleep 2"); + return exec("./scripts/example-commit/dc-example.sh restart authelia && sleep 2"); }); }); \ No newline at end of file