From 14e75c0fa0c78fa5306062aced69b4e5a3eca1ea Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 26 Apr 2017 12:11:21 +0200 Subject: [PATCH 01/34] Very basic single passing test --- src/{App.test.js => Header.test.js} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/{App.test.js => Header.test.js} (65%) diff --git a/src/App.test.js b/src/Header.test.js similarity index 65% rename from src/App.test.js rename to src/Header.test.js index b84af98..db2da16 100644 --- a/src/App.test.js +++ b/src/Header.test.js @@ -1,8 +1,8 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import App from './App'; +import Header from './components/header'; it('renders without crashing', () => { const div = document.createElement('div'); - ReactDOM.render(, div); + ReactDOM.render(
, div); }); From 706e8f0c253cc882f763a77a083415cc2fc7a8d6 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 26 Apr 2017 12:13:15 +0200 Subject: [PATCH 02/34] ci config with basic test stage --- .gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2a00fb2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,7 @@ +stages: +- test + +test_job: + stage: test + script: + - npm test \ No newline at end of file From 583a713696be1dfe124ffb52398bf04cbc977263 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 26 Apr 2017 12:23:38 +0200 Subject: [PATCH 03/34] define runner's environment docker image --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a00fb2..2be3363 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,9 @@ +image: node:7.9.0 + stages: - test test_job: stage: test script: - - npm test \ No newline at end of file + - npm test From 056925ae26459103901b6bd9f8fbf3af09fef9fd Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 26 Apr 2017 12:29:38 +0200 Subject: [PATCH 04/34] missing environment initialization --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2be3363..ff31eb2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,8 @@ image: node:7.9.0 +before_script: + - npm install + stages: - test From 7912eaaef99c0b18213afbdcd8362a5b6846a234 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 13:46:38 +0200 Subject: [PATCH 05/34] separate build and test stages using docker images --- .gitlab-ci.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff31eb2..e083eaa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,24 @@ -image: node:7.9.0 +image: docker before_script: - - npm install +- mkdir build +- mkdir node_modules + +cache: + paths: + - build + - node_modules stages: +- build - test +build_job: + stage: build + script: + - docker run -v .:/usr/src/app node:7.9.0 npm install /usr/src/app + test_job: stage: test script: - - npm test + - docker run -v .:/usr/src/app node:7.9.0 npm test /usr/src/app From c88e675961da9cef4efd795465b021fccdbbb3c7 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 13:57:39 +0200 Subject: [PATCH 06/34] dind executor? --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e083eaa..0d0bbca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,10 @@ image: docker +services: +- docker:dind + before_script: +- docker info - mkdir build - mkdir node_modules From 8364138cfa87e99b2dfa03bd7daadd3899ef0cf0 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 14:03:53 +0200 Subject: [PATCH 07/34] overlayfs driver --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d0bbca..16a58a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,8 @@ image: docker +variables: + DOCKER_DRIVER: overlay + services: - docker:dind From 29e3dc750209ac03d87f664cc401f55c86ee43f2 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 14:06:46 +0200 Subject: [PATCH 08/34] revoke overlayfs driver --- .gitlab-ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 16a58a3..0d0bbca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,5 @@ image: docker -variables: - DOCKER_DRIVER: overlay - services: - docker:dind From c7b98368818d773a6818b28a6db5e0c509c5f733 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 14:10:31 +0200 Subject: [PATCH 09/34] Use slim node images --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d0bbca..753f1c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,9 +20,9 @@ stages: build_job: stage: build script: - - docker run -v .:/usr/src/app node:7.9.0 npm install /usr/src/app + - docker run -v .:/usr/src/app node:7.9.0-slim npm install /usr/src/app test_job: stage: test script: - - docker run -v .:/usr/src/app node:7.9.0 npm test /usr/src/app + - docker run -v .:/usr/src/app node:7.9.0-slim npm test /usr/src/app From 7f2b5735312fd2aeac8705567e5e50a709b7637e Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 15:36:54 +0200 Subject: [PATCH 10/34] fixed run command parameters --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 753f1c3..293406e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,9 +20,9 @@ stages: build_job: stage: build script: - - docker run -v .:/usr/src/app node:7.9.0-slim npm install /usr/src/app + - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/build:/usr/src/app/build -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm run build' test_job: stage: test script: - - docker run -v .:/usr/src/app node:7.9.0-slim npm test /usr/src/app + - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm test' From 2b801167c74b2e50bb35d39b9a7f407c99bb8f95 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 16:44:16 +0200 Subject: [PATCH 11/34] Set backend endpoint from ENV --- src/data-managers/rest-data-manager.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data-managers/rest-data-manager.js b/src/data-managers/rest-data-manager.js index 655815c..0d5508e 100644 --- a/src/data-managers/rest-data-manager.js +++ b/src/data-managers/rest-data-manager.js @@ -9,8 +9,8 @@ import RestAPI from '../api/rest-api'; import AppDispatcher from '../app-dispatcher'; - -const API_URL = 'http://localhost:4000/api/v1'; +const backend = process.env.REACT_APP_BACKEND || 'ghvillas.westeurope.cloudapp.azure.com:4000' +const API_URL = 'http://' + backend + '/api/v1'; class RestDataManager { constructor(type, url, keyFilter) { From e201f9086709b5302f096d36a792c6bcda1d74c2 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 16:46:31 +0200 Subject: [PATCH 12/34] backend as module; frontend as Docker image; deployment configuration --- .gitlab-ci.yml | 16 +++++++++++++--- .gitmodules | 4 ++++ docker-compose.yml | 13 ++++++++----- nginx/Dockerfile | 10 ++++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 .gitmodules create mode 100644 nginx/Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 293406e..5306991 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,17 +5,16 @@ services: before_script: - docker info -- mkdir build -- mkdir node_modules +- mkdir -p build cache: paths: - build - - node_modules stages: - build - test +- deploy build_job: stage: build @@ -26,3 +25,14 @@ test_job: stage: test script: - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm test' + +deploy_review: + stage: deploy + environment: review + script: + - echo $DEPLOYMENT_CACERT > ~/.docker/ca.pem + - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem + - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem + - docker-compose build + - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST down + - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST up \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..cbc88dc --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "VILLASweb-backend"] + path = VILLASweb-backend + url = VILLASframework/VILLASweb-backend.git + branch = docker-names diff --git a/docker-compose.yml b/docker-compose.yml index afdd7a7..75cf6cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,10 +2,9 @@ version: "2" services: frontend: - image: nginx:stable - volumes: - - ./nginx:/etc/nginx/conf.d/ - - ./build:/www + build: + context: . + dockerfile: nginx/Dockerfile links: - backend ports: @@ -13,12 +12,16 @@ services: - "443:443" backend: - image: villasweb-backend + build: VILLASweb-backend links: - database + ports: + - "4000:4000" database: image: mongo:latest volumes: - /opt/database:/data/db + ports: + - "27017:27017" diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 0000000..3b31184 --- /dev/null +++ b/nginx/Dockerfile @@ -0,0 +1,10 @@ +FROM nginx:stable + +# Copy frontend files and make them accesible to nginx +RUN mkdir /www +COPY ./build /www +RUN chown nginx:nginx -R /www +RUN chmod -R 0755 /www + +# Copy nginx configuration +COPY ./nginx/villas.conf /etc/nginx/conf.d/default.conf From b7d9783d6ba96d4f2bb582c47a27040038330005 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 17:12:29 +0200 Subject: [PATCH 13/34] avoid running tests in watch mode --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5306991..c3bb846 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ build_job: test_job: stage: test script: - - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm test' + - docker run --rm -e CI=true -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm test' deploy_review: stage: deploy From dc7a2320fbef79129429d05034310268ac4661d6 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 17:23:38 +0200 Subject: [PATCH 14/34] create directory first --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3bb846..ceeb6e1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,6 +30,7 @@ deploy_review: stage: deploy environment: review script: + - mkdir -p ~/.docker - echo $DEPLOYMENT_CACERT > ~/.docker/ca.pem - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem From 9fdbc619fe3437aa7dbb86944ed7154a741d9d26 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 17:26:56 +0200 Subject: [PATCH 15/34] gitmodule relative url --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index cbc88dc..955a1d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "VILLASweb-backend"] path = VILLASweb-backend - url = VILLASframework/VILLASweb-backend.git + url = ../../VILLASframework/VILLASweb-backend.git branch = docker-names From c36202c2589b978967e68c474a5dfa679a154b03 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 17:33:13 +0200 Subject: [PATCH 16/34] missing submodule strategy variable --- .gitlab-ci.yml | 3 +++ VILLASweb-backend | 1 + 2 files changed, 4 insertions(+) create mode 160000 VILLASweb-backend diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ceeb6e1..0becc04 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,8 @@ image: docker +variables: + GIT_SUBMODULE_STRATEGY: normal + services: - docker:dind diff --git a/VILLASweb-backend b/VILLASweb-backend new file mode 160000 index 0000000..9610f8b --- /dev/null +++ b/VILLASweb-backend @@ -0,0 +1 @@ +Subproject commit 9610f8bc9e5eaf35fc53f97c64ecd16b04f55b5b From 89fd344bf2435b37854c7d788ef07e9256880af0 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 17:44:07 +0200 Subject: [PATCH 17/34] Specify docker runner through tags --- .gitlab-ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0becc04..82b3cd1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,11 +23,15 @@ build_job: stage: build script: - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/build:/usr/src/app/build -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm run build' + tags: + - docker test_job: stage: test script: - docker run --rm -e CI=true -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm test' + tags: + - docker deploy_review: stage: deploy @@ -39,4 +43,6 @@ deploy_review: - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem - docker-compose build - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST down - - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST up \ No newline at end of file + - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST up + tags: + - docker From 89bd3b7eb03aa4dd48643a723c355971aaf1a976 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 18:09:38 +0200 Subject: [PATCH 18/34] attempt to install docker-compose --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82b3cd1..41277a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,9 @@ services: - docker:dind before_script: -- docker info +- docker version +- apk add --no-cache py-pip +- pip install docker-compose - mkdir -p build cache: From 0beb5e676a024cb4cfc94bf0dfa4b847898c6587 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 27 Apr 2017 18:34:46 +0200 Subject: [PATCH 19/34] Reduced image size --- nginx/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/Dockerfile b/nginx/Dockerfile index 3b31184..f5d6b65 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -1,4 +1,4 @@ -FROM nginx:stable +FROM nginx:stable-alpine # Copy frontend files and make them accesible to nginx RUN mkdir /www From 80e90ef20e3c99e22ee9db348521b0d80297176d Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 28 Apr 2017 09:22:00 +0200 Subject: [PATCH 20/34] changed submodule branch to docker-names --- VILLASweb-backend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VILLASweb-backend b/VILLASweb-backend index 9610f8b..8184b91 160000 --- a/VILLASweb-backend +++ b/VILLASweb-backend @@ -1 +1 @@ -Subproject commit 9610f8bc9e5eaf35fc53f97c64ecd16b04f55b5b +Subproject commit 8184b91f013f25887a129fd95354da3cc5796244 From ffb3fc884fb0caaaae5362182b15c6d0d177865e Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 28 Apr 2017 09:38:30 +0200 Subject: [PATCH 21/34] correct docker-compose options --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 41277a8..5b85ab9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,7 +44,7 @@ deploy_review: - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem - docker-compose build - - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST down - - docker-compose -d --tlsverify -H=$DEPLOYMENT_HOST up + - docker-compose --tlsverify -H=$DEPLOYMENT_HOST down + - docker-compose --tlsverify -H=$DEPLOYMENT_HOST up -d tags: - docker From b580c0ba1292ff75b768c98b8a461a3848f6de1e Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 28 Apr 2017 13:03:53 +0200 Subject: [PATCH 22/34] explicitely set docker-compose env variables --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b85ab9..fe21e3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,8 +43,9 @@ deploy_review: - echo $DEPLOYMENT_CACERT > ~/.docker/ca.pem - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem + - export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 - docker-compose build - - docker-compose --tlsverify -H=$DEPLOYMENT_HOST down - - docker-compose --tlsverify -H=$DEPLOYMENT_HOST up -d + - docker-compose -H=$DEPLOYMENT_HOST --verbose down + - docker-compose -H=$DEPLOYMENT_HOST --verbose up -d tags: - docker From 0d0e2dc118016232b39ef3d95b99fc1fbcf412a5 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 28 Apr 2017 13:30:31 +0200 Subject: [PATCH 23/34] Set env variables after building images --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fe21e3b..0e675f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,8 +43,8 @@ deploy_review: - echo $DEPLOYMENT_CACERT > ~/.docker/ca.pem - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem - - export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 - docker-compose build + - export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 - docker-compose -H=$DEPLOYMENT_HOST --verbose down - docker-compose -H=$DEPLOYMENT_HOST --verbose up -d tags: From 18cff1701a527c7ba104f16b66a4949262291612 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 28 Apr 2017 14:31:20 +0200 Subject: [PATCH 24/34] is variable available? --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0e675f1..98f57e5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,7 @@ services: - docker:dind before_script: +- echo $DEPLOYMENT_HOST - docker version - apk add --no-cache py-pip - pip install docker-compose From 9105c3fbaea8195a008a7329710cc88384004dd1 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 31 May 2017 10:14:28 +0200 Subject: [PATCH 25/34] set specific docker image and docker-compose versions --- .gitlab-ci.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98f57e5..e3c24f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,16 +1,13 @@ -image: docker +image: docker:17 variables: GIT_SUBMODULE_STRATEGY: normal + DOCKER_COMPOSE_VERSION: 1.13.0 services: - docker:dind before_script: -- echo $DEPLOYMENT_HOST -- docker version -- apk add --no-cache py-pip -- pip install docker-compose - mkdir -p build cache: @@ -41,12 +38,14 @@ deploy_review: environment: review script: - mkdir -p ~/.docker - - echo $DEPLOYMENT_CACERT > ~/.docker/ca.pem - - echo $DEPLOYMENT_CLIENT_CERT > ~/.docker/cert.pem - - echo $DEPLOYMENT_CLIENT_KEY > ~/.docker/key.pem + - echo "$DEPLOYMENT_CACERT" > ~/.docker/ca.pem + - echo "$DEPLOYMENT_CLIENT_CERT" > ~/.docker/cert.pem + - echo "$DEPLOYMENT_CLIENT_KEY" > ~/.docker/key.pem + - apk add --no-cache py-pip + - pip install docker-compose==$DOCKER_COMPOSE_VERSION - docker-compose build - - export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 - - docker-compose -H=$DEPLOYMENT_HOST --verbose down - - docker-compose -H=$DEPLOYMENT_HOST --verbose up -d + - export DOCKER_HOST=$DEPLOYMENT_HOST && export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 + - docker-compose --verbose down + - docker-compose --verbose up -d tags: - docker From ee9924e0238c6c371d6d706f065248676c0bbeeb Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 31 May 2017 11:23:07 +0200 Subject: [PATCH 26/34] point to backend's develop branch --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 955a1d6..4cab793 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "VILLASweb-backend"] path = VILLASweb-backend url = ../../VILLASframework/VILLASweb-backend.git - branch = docker-names + branch = develop From 013a0b21229e9b8615d09eca3eec39518bfe251f Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 31 May 2017 11:24:01 +0200 Subject: [PATCH 27/34] backend production env, database user, unbind db's ports to host --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 75cf6cf..684f66c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,13 +15,13 @@ services: build: VILLASweb-backend links: - database + environment: + - NODE_ENV=production ports: - "4000:4000" database: image: mongo:latest + user: mongodb volumes: - /opt/database:/data/db - ports: - - "27017:27017" - From bbfdc3acbb8b557ee541ac50d11334d40fb73c55 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Wed, 31 May 2017 14:29:42 +0200 Subject: [PATCH 28/34] pass proxy as environment variable --- package.json | 1 - src/data-managers/rest-data-manager.js | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index aa1e73c..a8cc8a2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "villasweb-frontend", "version": "0.1.0", "private": true, - "proxy": "http://localhost:4000", "dependencies": { "bootstrap": "^3.3.7", "classnames": "^2.2.5", diff --git a/src/data-managers/rest-data-manager.js b/src/data-managers/rest-data-manager.js index 6ebe72d..6cff9b6 100644 --- a/src/data-managers/rest-data-manager.js +++ b/src/data-managers/rest-data-manager.js @@ -21,7 +21,9 @@ import RestAPI from '../api/rest-api'; import AppDispatcher from '../app-dispatcher'; -const API_URL = '/api/v1'; + +const PROXY = process.env.REACT_APP_HTTP_PROXY || "http://localhost:4000"; +const API_URL = PROXY + '/api/v1'; class RestDataManager { constructor(type, url, keyFilter) { From 342e137560db8943710d3ec80acc64241f9ab4ef Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 1 Jun 2017 08:35:04 +0200 Subject: [PATCH 29/34] pass HTTP_PROXY environment to app --- docker-compose.yml | 2 ++ src/data-managers/rest-data-manager.js | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 13dd4c2..32fffde 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,8 @@ services: dockerfile: nginx/Dockerfile links: - backend + environment: + - REACT_APP_HTTP_PROXY ports: - "80:80" - "443:443" diff --git a/src/data-managers/rest-data-manager.js b/src/data-managers/rest-data-manager.js index 6cff9b6..51560a2 100644 --- a/src/data-managers/rest-data-manager.js +++ b/src/data-managers/rest-data-manager.js @@ -22,8 +22,8 @@ import RestAPI from '../api/rest-api'; import AppDispatcher from '../app-dispatcher'; -const PROXY = process.env.REACT_APP_HTTP_PROXY || "http://localhost:4000"; -const API_URL = PROXY + '/api/v1'; +const HOST = process.env.REACT_APP_HTTP_PROXY || ""; +const API_URL = HOST + '/api/v1'; class RestDataManager { constructor(type, url, keyFilter) { From c75ac09aa99b4b6247bf0a31489ab12edab68058 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 1 Jun 2017 11:19:38 +0200 Subject: [PATCH 30/34] include build directory and nginx in docker build --- .dockerignore | 2 -- nginx/Dockerfile | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index 84eb9b1..a51ea8a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,2 @@ node_modules/ -nginx/ doc/ -build/ diff --git a/nginx/Dockerfile b/nginx/Dockerfile index f5d6b65..6902568 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -2,9 +2,9 @@ FROM nginx:stable-alpine # Copy frontend files and make them accesible to nginx RUN mkdir /www -COPY ./build /www +COPY build /www RUN chown nginx:nginx -R /www RUN chmod -R 0755 /www # Copy nginx configuration -COPY ./nginx/villas.conf /etc/nginx/conf.d/default.conf +COPY nginx/villas.conf /etc/nginx/conf.d/default.conf From bcd3f32003805235cf34c4e5f1ff8593e0dee1e2 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 1 Jun 2017 11:21:03 +0200 Subject: [PATCH 31/34] use artifacts instead of cache --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e3c24f1..2b14a66 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,10 +10,6 @@ services: before_script: - mkdir -p build -cache: - paths: - - build - stages: - build - test @@ -23,6 +19,10 @@ build_job: stage: build script: - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/build:/usr/src/app/build -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm run build' + artifacts: + paths: + - build/ + expire_in: 1 week tags: - docker From 7ac2d95aa7d58b538d57e4c071de16ddd9dcf50e Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 1 Jun 2017 14:11:20 +0200 Subject: [PATCH 32/34] yaml correction --- .gitlab-ci.yml | 6 +++--- CoSiFrontEnd | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) create mode 160000 CoSiFrontEnd diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2b14a66..60198a2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,9 +20,9 @@ build_job: script: - docker run --rm -v $(pwd)/package.json:/usr/src/app/package.json -v $(pwd)/build:/usr/src/app/build -v $(pwd)/public:/usr/src/app/public -v $(pwd)/src:/usr/src/app/src -w /usr/src/app node:7.9.0-slim bash -c 'npm install; npm run build' artifacts: - paths: - - build/ - expire_in: 1 week + paths: + - build/ + expire_in: 1 week tags: - docker diff --git a/CoSiFrontEnd b/CoSiFrontEnd new file mode 160000 index 0000000..ceb9949 --- /dev/null +++ b/CoSiFrontEnd @@ -0,0 +1 @@ +Subproject commit ceb99497b2839a7978b497b34c760553a63d5e9b From 64c7f9f6f3c13e82a17bb1028849a650369555f4 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Thu, 1 Jun 2017 14:19:19 +0200 Subject: [PATCH 33/34] CoSiFrontEnd doesn't belong here --- CoSiFrontEnd | 1 - 1 file changed, 1 deletion(-) delete mode 160000 CoSiFrontEnd diff --git a/CoSiFrontEnd b/CoSiFrontEnd deleted file mode 160000 index ceb9949..0000000 --- a/CoSiFrontEnd +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ceb99497b2839a7978b497b34c760553a63d5e9b From 5c8cc7cc8e3e77fa80578336bb72768ae4fa1a46 Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Fri, 2 Jun 2017 17:14:20 +0200 Subject: [PATCH 34/34] deploy only the development branch (review) --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 60198a2..179e421 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,5 +47,7 @@ deploy_review: - export DOCKER_HOST=$DEPLOYMENT_HOST && export DOCKER_TLS_VERIFY=1 && export DOCKER_CERT_PATH=~/.docker && export COMPOSE_TLS_VERSION=TLSv1_2 - docker-compose --verbose down - docker-compose --verbose up -d + only: + - develop tags: - docker