From d5f7ac152f1d1db5b4a896ef00e6854b997401e5 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Mon, 10 Jun 2019 23:49:51 +0200 Subject: [PATCH 01/20] :bulb: Track options to add and clean options --- manage.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/manage.sh b/manage.sh index dd6d28035..a3f171806 100755 --- a/manage.sh +++ b/manage.sh @@ -84,12 +84,18 @@ function build-release { function usage { echo "UXBOX build & release manager v$REV" - echo "USAGE: $0 [ clean | build | run | test | release-local | release-docker | run-release ]" + echo "USAGE: $0 OPTION" echo "Options:" - echo "- clean Stop and clean up docker containers" - echo "- build-devenv Build docker container for development with tmux" - echo "- run-devenv Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)" - echo "- build-release Build a 'production ready' release docker images" + echo "- clean Stop and clean up docker containers" + echo "- build-devenv Build docker container for development with tmux" + echo "- run-devenv Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)" + # TODO Add unit test command(s) + #echo "- test Execute unit tests for both backend and frontend" + #echo "- test-frontend Execute unit tests for frontend only" + #echo "- test-backend Execute unit tests for backend only" + echo "- build-release Build 'production ready' docker images for both backend and frontend" + echo "- build-release-frontend Build a 'production ready' docker images for frontend only" + echo "- build-release-backend Build a 'production ready' docker images for backend only" } case $1 in @@ -103,12 +109,6 @@ case $1 in run-devenv) run-devenv ;; - release-docker) - release_image - ;; - run-release) - run_release - ;; build-release) build-release ;; From fb7853d14890afba8cba4e4ee7d1dad1acecec29 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Mon, 10 Jun 2019 23:51:43 +0200 Subject: [PATCH 02/20] :construction_worker: Update CI node and tasks --- .travis.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 977ad86fe..933290931 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ branches: - master - wip - develop + - build-refactor install: - ./manage.sh help @@ -33,13 +34,9 @@ notifications: email: false env: - - NODE_VERSION=7.7.1 COMMAND=build - - NODE_VERSION=7.7.1 COMMAND=test - - NODE_VERSION=7.7.1 COMMAND=release-local - - NODE_VERSION=7.7.1 COMMAND=release-docker - - NODE_VERSION=7.7.1 COMMAND=run-release - - NODE_VERSION=8.15.0 COMMAND=build - - NODE_VERSION=8.15.0 COMMAND=test - - NODE_VERSION=8.15.0 COMMAND=release-local - - NODE_VERSION=8.15.0 COMMAND=release-docker - - NODE_VERSION=8.15.0 COMMAND=run-release + - NODE_VERSION=10.16.0 COMMAND=clean + - NODE_VERSION=10.16.0 COMMAND=build-devenv + #- NODE_VERSION=10.16.0 COMMAND=run-devenv + #- NODE_VERSION=10.16.0 COMMAND=test + - NODE_VERSION=10.16.0 COMMAND=build-release + #- NODE_VERSION=10.16.0 COMMAND=run-release From c4356bf9ce013d4dcefdf388d3d49795a50e0ce6 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 01:01:55 +0200 Subject: [PATCH 03/20] :art: Add env var for Clojure version --- docker/devenv/Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docker/devenv/Dockerfile b/docker/devenv/Dockerfile index bb318a2f9..57958a2ec 100644 --- a/docker/devenv/Dockerfile +++ b/docker/devenv/Dockerfile @@ -4,6 +4,7 @@ LABEL maintainer="Andrey Antukh " ARG EXTERNAL_UID=1000 ENV NODE_VERSION=v10.16.0 \ + CLOJURE_VERSION=1.10.0.442 \ LANG=en_US.UTF-8 \ LC_ALL=C.UTF-8 @@ -63,10 +64,10 @@ RUN set -ex; \ echo "uxbox ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers RUN set -ex; \ - wget https://download.clojure.org/install/linux-install-1.10.0.442.sh; \ - chmod +x linux-install-1.10.0.442.sh; \ - ./linux-install-1.10.0.442.sh; \ - rm -rf linux-install-1.10.0.442.sh + wget "https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh"; \ + chmod +x "linux-install-$CLOJURE_VERSION.sh"; \ + "./linux-install-$CLOJURE_VERSION.sh"; \ + rm -rf "linux-install-$CLOJURE_VERSION.sh" USER uxbox WORKDIR /home/uxbox From 00b56eaf6c8b0d2bb831dee167427ce8760df231 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 18:18:33 +0200 Subject: [PATCH 04/20] :art: Add variable for Clojure version Signed-off-by: mathieu.brunot --- docker/release.backend/Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/release.backend/Dockerfile b/docker/release.backend/Dockerfile index 0295c89b3..a5b6b9dd2 100644 --- a/docker/release.backend/Dockerfile +++ b/docker/release.backend/Dockerfile @@ -2,14 +2,15 @@ FROM openjdk:8-jre LABEL maintainer="Monogramm Maintainers " -ENV LANG=en_US.UTF-8 \ +ENV CLOJURE_VERSION=1.10.0.442 \ + LANG=en_US.UTF-8 \ LC_ALL=C.UTF-8 RUN set -ex; \ - wget https://download.clojure.org/install/linux-install-1.10.0.442.sh; \ - chmod +x linux-install-1.10.0.442.sh; \ - ./linux-install-1.10.0.442.sh; \ - rm -rf linux-install-1.10.0.442.sh + wget "https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh"; \ + chmod +x "linux-install-$CLOJURE_VERSION.sh"; \ + "./linux-install-$CLOJURE_VERSION.sh"; \ + rm -rf "linux-install-$CLOJURE_VERSION.sh" RUN set -ex; \ apt-get update -yq && \ From a7ed60ee123d91a1c2c332fa74c1703e98e9fb32 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 20:58:21 +0200 Subject: [PATCH 05/20] :heavy_plus_sign: Add curl Signed-off-by: mathieu.brunot --- docker/release.backend/Dockerfile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docker/release.backend/Dockerfile b/docker/release.backend/Dockerfile index a5b6b9dd2..d48cf8516 100644 --- a/docker/release.backend/Dockerfile +++ b/docker/release.backend/Dockerfile @@ -6,19 +6,20 @@ ENV CLOJURE_VERSION=1.10.0.442 \ LANG=en_US.UTF-8 \ LC_ALL=C.UTF-8 +RUN set -ex; \ + apt-get update -yq && \ + apt-get install -yq \ + curl \ + git \ + imagemagick \ + webp + RUN set -ex; \ wget "https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh"; \ chmod +x "linux-install-$CLOJURE_VERSION.sh"; \ "./linux-install-$CLOJURE_VERSION.sh"; \ rm -rf "linux-install-$CLOJURE_VERSION.sh" -RUN set -ex; \ - apt-get update -yq && \ - apt-get install -yq \ - git \ - imagemagick \ - webp - COPY ./entrypoint.sh /entrypoint.sh COPY ./dist /srv/uxbox From 15ea62c8d779ff09e2f985c6dea32070e860442a Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 21:10:07 +0200 Subject: [PATCH 06/20] :construction_worker: Build devenv for release Signed-off-by: mathieu.brunot --- .travis.yml | 2 +- manage.sh | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 933290931..545bbee48 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,4 +39,4 @@ env: #- NODE_VERSION=10.16.0 COMMAND=run-devenv #- NODE_VERSION=10.16.0 COMMAND=test - NODE_VERSION=10.16.0 COMMAND=build-release - #- NODE_VERSION=10.16.0 COMMAND=run-release + - NODE_VERSION=10.16.0 COMMAND=run-release diff --git a/manage.sh b/manage.sh index a3f171806..81edd11ba 100755 --- a/manage.sh +++ b/manage.sh @@ -47,6 +47,10 @@ function run-devenv { } function build-release-frontend-local { + if ! $(docker images | grep $IMGNAME | grep -q $REV); then + build-devenv + fi + docker run -ti --rm \ -w /home/uxbox/uxbox/frontend \ -v `pwd`:/home/uxbox/uxbox \ @@ -64,24 +68,43 @@ function build-release-frontend { rm -rf docker/release.frontend/dist || exit 1; } -function build-release-backend { - rm -rf docker/release.backend/dist || exit 1; +function build-release-backend-local { + rm -rf backend/dist || exit 1; rsync -avr \ --exclude="/test" \ --exclude="/resources/public/media" \ --exclude="/target" \ --exclude="/scripts" \ --exclude="/.*" \ - backend/ docker/release.backend/dist/; + backend/ backend/dist/; +} + +function build-release-backend { + build-release-backend-local || exit 1; + rm -rf docker/release.backend/dist || exit 1; + cp -r backend/dist docker/release.backend/ || exit 1; docker build --rm=true -t ${IMGNAME}-backend:$REV -t ${IMGNAME}-backend:latest docker/release.backend/ rm -rf docker/release.backend/dist || exit 1; } function build-release { + echo "Building frontend release..." build-release-frontend || exit 1; + echo "Building backend release..." build-release-backend || exit 1; } +function run-release { + kill-container + + if ! $(docker images | grep $IMGNAME-backend | grep -q $REV); then + build-release + fi + + echo "Running production images..." + sudo docker-compose -f ./docker/docker-compose.yml up -d +} + function usage { echo "UXBOX build & release manager v$REV" echo "USAGE: $0 OPTION" @@ -96,6 +119,7 @@ function usage { echo "- build-release Build 'production ready' docker images for both backend and frontend" echo "- build-release-frontend Build a 'production ready' docker images for frontend only" echo "- build-release-backend Build a 'production ready' docker images for backend only" + echo "- run-release Run 'production ready' docker images for both backend and frontend" } case $1 in @@ -118,6 +142,9 @@ case $1 in build-release-backend) build-release-backend ;; + run-release) + run-release + ;; *) usage ;; From 06c830dd3c1968aacb7e7568a8bc8197df3f81f8 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 22:39:41 +0200 Subject: [PATCH 07/20] :green_heart: Change release command Signed-off-by: mathieu.brunot --- .travis.yml | 3 +++ backend/scripts/prepare-release.sh | 10 ++++++++++ docker/devenv/files/entrypoint.sh | 2 +- manage.sh | 19 ++++++++++++++++++- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 backend/scripts/prepare-release.sh diff --git a/.travis.yml b/.travis.yml index 545bbee48..0ee69a50c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,6 +37,9 @@ env: - NODE_VERSION=10.16.0 COMMAND=clean - NODE_VERSION=10.16.0 COMMAND=build-devenv #- NODE_VERSION=10.16.0 COMMAND=run-devenv + # TODO Add unit test command(s) #- NODE_VERSION=10.16.0 COMMAND=test - NODE_VERSION=10.16.0 COMMAND=build-release + - NODE_VERSION=10.16.0 COMMAND=build-release-frontend + - NODE_VERSION=10.16.0 COMMAND=build-release-backend - NODE_VERSION=10.16.0 COMMAND=run-release diff --git a/backend/scripts/prepare-release.sh b/backend/scripts/prepare-release.sh new file mode 100644 index 000000000..a247728c1 --- /dev/null +++ b/backend/scripts/prepare-release.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +rm -rf ../dist || exit 1; + +rsync -avr \ + --exclude="/test" \ + --exclude="/resources/public/media" \ + --exclude="/target" \ + --exclude="/scripts" \ + --exclude="/.*" \ + ../ ../dist/; diff --git a/docker/devenv/files/entrypoint.sh b/docker/devenv/files/entrypoint.sh index 419da3804..ceb79bc68 100644 --- a/docker/devenv/files/entrypoint.sh +++ b/docker/devenv/files/entrypoint.sh @@ -1,5 +1,5 @@ #!/usr/bin/env zsh set -e -echo "UXBOX Docker entrypoint initialization..." +echo "UXBOX Docker Dev entrypoint initialization..." exec "$@" diff --git a/manage.sh b/manage.sh index 81edd11ba..0a6e8c18d 100755 --- a/manage.sh +++ b/manage.sh @@ -51,13 +51,19 @@ function build-release-frontend-local { build-devenv fi + mkdir -p $HOME/.m2 + rm -rf ./frontend/node_modules + + CONTAINER=$IMGNAME:latest + + echo "Running development image $CONTAINER to build frontend release..." docker run -ti --rm \ -w /home/uxbox/uxbox/frontend \ -v `pwd`:/home/uxbox/uxbox \ -v $HOME/.m2:/home/uxbox/.m2 \ -e UXBOX_API_URL="/api" \ -e UXBOX_VIEW_URL="/view" \ - $IMGNAME:latest ./scripts/build-release.sh + $CONTAINER cd /home/uxbox/uxbox/frontend && ./scripts/build-release.sh } function build-release-frontend { @@ -69,6 +75,17 @@ function build-release-frontend { } function build-release-backend-local { + #if ! $(docker images | grep $IMGNAME | grep -q $REV); then + # build-devenv + #fi + #mkdir -p $HOME/.m2 + #CONTAINER=$IMGNAME:latest + #echo "Running development image $CONTAINER to build backend release..." + #docker run -ti --rm \ + # -w /home/uxbox/uxbox/backend \ + # -v `pwd`:/home/uxbox/uxbox \ + # -v $HOME/.m2:/home/uxbox/.m2 \ + # $CONTAINER cd /home/uxbox/uxbox/backend && ./scripts/prepare-release.sh rm -rf backend/dist || exit 1; rsync -avr \ --exclude="/test" \ From 9664fe4a615de178003d8a93bf807b80236d1610 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Tue, 11 Jun 2019 22:56:24 +0200 Subject: [PATCH 08/20] :construction: Set permissions on front release Signed-off-by: mathieu.brunot --- manage.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/manage.sh b/manage.sh index 0a6e8c18d..3f8259122 100755 --- a/manage.sh +++ b/manage.sh @@ -53,6 +53,7 @@ function build-release-frontend-local { mkdir -p $HOME/.m2 rm -rf ./frontend/node_modules + chmod 777 ./frontend CONTAINER=$IMGNAME:latest @@ -63,7 +64,7 @@ function build-release-frontend-local { -v $HOME/.m2:/home/uxbox/.m2 \ -e UXBOX_API_URL="/api" \ -e UXBOX_VIEW_URL="/view" \ - $CONTAINER cd /home/uxbox/uxbox/frontend && ./scripts/build-release.sh + $CONTAINER ./scripts/build-release.sh } function build-release-frontend { @@ -85,7 +86,7 @@ function build-release-backend-local { # -w /home/uxbox/uxbox/backend \ # -v `pwd`:/home/uxbox/uxbox \ # -v $HOME/.m2:/home/uxbox/.m2 \ - # $CONTAINER cd /home/uxbox/uxbox/backend && ./scripts/prepare-release.sh + # $CONTAINER ./scripts/prepare-release.sh rm -rf backend/dist || exit 1; rsync -avr \ --exclude="/test" \ From e9e4f5d18a0a19d52ee7033427f9afb4981fdc3f Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 12 Jun 2019 12:46:35 +0200 Subject: [PATCH 09/20] :construction: :green_heart: change permissions Signed-off-by: mathieu.brunot --- manage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manage.sh b/manage.sh index 3f8259122..0eab214d1 100755 --- a/manage.sh +++ b/manage.sh @@ -53,7 +53,9 @@ function build-release-frontend-local { mkdir -p $HOME/.m2 rm -rf ./frontend/node_modules + # FIXME Ugly... should be a better way chmod 777 ./frontend + chmod -R 777 $HOME/.m2 CONTAINER=$IMGNAME:latest From acf2e53825f31a0dc66f3b4de36b17b1b16e18bf Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 12 Jun 2019 14:46:59 +0200 Subject: [PATCH 10/20] :construction: Wait to check manually runtime Signed-off-by: mathieu.brunot --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0ee69a50c..5e3e929c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,8 @@ script: after_script: - docker images - docker ps + - sleep 120 + - docker ps notifications: email: false From 78c2e66aa8be66f5cad4c67a5e5aa37519ab8a09 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 12 Jun 2019 15:42:37 +0200 Subject: [PATCH 11/20] :construction: Display logs of any running docker Signed-off-by: mathieu.brunot --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 5e3e929c3..9db2ac753 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ after_script: - docker ps - sleep 120 - docker ps + - for c in $(docker ps -q); do docker logs $c; done notifications: email: false From 59b65fffe3ef4fbd5e350edd26d13a51dc063430 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 12 Jun 2019 16:19:15 +0200 Subject: [PATCH 12/20] :construction: Wait more for init Signed-off-by: mathieu.brunot --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9db2ac753..d11881b2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,9 +29,9 @@ script: after_script: - docker images - docker ps - - sleep 120 + - sleep 180 - docker ps - - for c in $(docker ps -q); do docker logs $c; done + - for c in $(docker ps -q); do echo "> docker logs $c"; docker logs $c; done notifications: email: false From 95fa00e4fc6eb07efc8862b2a30f3f885a0e9fe8 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 12 Jun 2019 16:32:06 +0200 Subject: [PATCH 13/20] :construction_worker: Wait if run release Signed-off-by: mathieu.brunot --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d11881b2e..6d4fdd5a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,7 +29,7 @@ script: after_script: - docker images - docker ps - - sleep 180 + - if [ "$COMMAND" = "run-release" ]; then sleep 180; fi - docker ps - for c in $(docker ps -q); do echo "> docker logs $c"; docker logs $c; done From 2183c37373b966a7aebc75721476b95401baec96 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 19 Jun 2019 16:42:32 +0200 Subject: [PATCH 14/20] :bug: Ensure frontend css folders exists Signed-off-by: mathieu.brunot --- manage.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/manage.sh b/manage.sh index 0eab214d1..3a864eab9 100755 --- a/manage.sh +++ b/manage.sh @@ -34,6 +34,9 @@ function run-devenv { mkdir -p $HOME/.m2 rm -rf ./frontend/node_modules + mkdir -p \ + ./frontend/resources/public/css \ + ./frontend/resources/public/view/css CONTAINER=$IMGNAME:latest @@ -132,10 +135,9 @@ function usage { echo "- clean Stop and clean up docker containers" echo "- build-devenv Build docker container for development with tmux" echo "- run-devenv Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)" - # TODO Add unit test command(s) - #echo "- test Execute unit tests for both backend and frontend" - #echo "- test-frontend Execute unit tests for frontend only" - #echo "- test-backend Execute unit tests for backend only" + echo "- test Execute unit tests for both backend and frontend" + echo "- test-frontend Execute unit tests for frontend only" + echo "- test-backend Execute unit tests for backend only" echo "- build-release Build 'production ready' docker images for both backend and frontend" echo "- build-release-frontend Build a 'production ready' docker images for frontend only" echo "- build-release-backend Build a 'production ready' docker images for backend only" @@ -153,6 +155,15 @@ case $1 in run-devenv) run-devenv ;; + test) + test + ;; + test-frontend) + test-frontend + ;; + test-backend) + test-backend + ;; build-release) build-release ;; From 0109c3ff1dc095ac25fcd294d2b3d660dd2b97cb Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Wed, 19 Jun 2019 18:31:48 +0200 Subject: [PATCH 15/20] :construction: Add tests option Signed-off-by: mathieu.brunot --- .travis.yml | 3 +- backend/scripts/build-tests.sh | 6 +++ frontend/package.json | 2 + frontend/scripts/build-tests.sh | 10 +++++ manage.sh | 65 ++++++++++++++++++++++++++++----- 5 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 backend/scripts/build-tests.sh create mode 100644 frontend/scripts/build-tests.sh diff --git a/.travis.yml b/.travis.yml index 6d4fdd5a6..f32210e54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,8 +40,7 @@ env: - NODE_VERSION=10.16.0 COMMAND=clean - NODE_VERSION=10.16.0 COMMAND=build-devenv #- NODE_VERSION=10.16.0 COMMAND=run-devenv - # TODO Add unit test command(s) - #- NODE_VERSION=10.16.0 COMMAND=test + - NODE_VERSION=10.16.0 COMMAND=test-devenv - NODE_VERSION=10.16.0 COMMAND=build-release - NODE_VERSION=10.16.0 COMMAND=build-release-frontend - NODE_VERSION=10.16.0 COMMAND=build-release-backend diff --git a/backend/scripts/build-tests.sh b/backend/scripts/build-tests.sh new file mode 100644 index 000000000..9946c9e6b --- /dev/null +++ b/backend/scripts/build-tests.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +echo "Not yet implemented!" + +# TODO +#lein test diff --git a/frontend/package.json b/frontend/package.json index d6966af89..82ffe5b85 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,6 +17,8 @@ "dist:assets": "gulp dist", "prod": "gulp dist --production", "start": "npm run figwheel", + "build:main": "clojure -Adev tools.clj build main", + "build:view": "clojure -Adev tools.clj build view", "build:worker": "clojure -Adev tools.clj build worker", "figwheel": "clojure -Adev tools.clj figwheel" }, diff --git a/frontend/scripts/build-tests.sh b/frontend/scripts/build-tests.sh new file mode 100644 index 000000000..88d39adbb --- /dev/null +++ b/frontend/scripts/build-tests.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +source ~/.bashrc + +npm install +npm run build:main || exit 1; +npm run build:view || exit 1; +npm run build:worker || exit 1; + +# TODO +#node ./out/tests.js diff --git a/manage.sh b/manage.sh index 3a864eab9..9a8e2abfa 100755 --- a/manage.sh +++ b/manage.sh @@ -49,6 +49,53 @@ function run-devenv { $CONTAINER } +function test-devenv { + echo "Testing frontend..." + test-devenv-frontend || exit 1; + echo "Testing backend..." + test-devenv-backend || exit 1; +} + +function test-devenv-frontend { + # TODO Add frontend unit tests call + echo "Not yet implemented!" + +# if ! $(docker images | grep $IMGNAME | grep -q $REV); then +# build-devenv +# fi +# +# CONTAINER=$IMGNAME:latest +# +# echo "Running development image $CONTAINER to test backend..." +# docker run -ti --rm \ +# -w /home/uxbox/uxbox/backend \ +# -v `pwd`:/home/uxbox/uxbox \ +# -v $HOME/.m2:/home/uxbox/.m2 \ +# -e UXBOX_API_URL="/api" \ +# -e UXBOX_VIEW_URL="/view" \ +# $CONTAINER ./scripts/build-tests.sh +} + +function test-devenv-backend { + # TODO Add backend unit tests call + echo "Not yet implemented!" + +# if ! $(docker images | grep $IMGNAME | grep -q $REV); then +# build-devenv +# fi +# +# CONTAINER=$IMGNAME:latest +# +# echo "Running development image $CONTAINER to test frontend..." +# docker run -ti --rm \ +# -w /home/uxbox/uxbox/frontend \ +# -v `pwd`:/home/uxbox/uxbox \ +# -v $HOME/.m2:/home/uxbox/.m2 \ +# -e UXBOX_API_URL="/api" \ +# -e UXBOX_VIEW_URL="/view" \ +# $CONTAINER ./scripts/build-tests.sh +} + function build-release-frontend-local { if ! $(docker images | grep $IMGNAME | grep -q $REV); then build-devenv @@ -135,9 +182,9 @@ function usage { echo "- clean Stop and clean up docker containers" echo "- build-devenv Build docker container for development with tmux" echo "- run-devenv Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)" - echo "- test Execute unit tests for both backend and frontend" - echo "- test-frontend Execute unit tests for frontend only" - echo "- test-backend Execute unit tests for backend only" + echo "- test-devenv Execute unit tests for both backend and frontend" + echo "- test-devenv-frontend Execute unit tests for frontend only" + echo "- test-devenv-backend Execute unit tests for backend only" echo "- build-release Build 'production ready' docker images for both backend and frontend" echo "- build-release-frontend Build a 'production ready' docker images for frontend only" echo "- build-release-backend Build a 'production ready' docker images for backend only" @@ -155,14 +202,14 @@ case $1 in run-devenv) run-devenv ;; - test) - test + test-devenv) + test-devenv ;; - test-frontend) - test-frontend + test-devenv-frontend) + test-devenv-frontend ;; - test-backend) - test-backend + test-devenv-backend) + test-devenv-backend ;; build-release) build-release From c6b540868f1b3d21ec3222990f5aa6bd6e770aed Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Sun, 23 Jun 2019 18:47:33 +0200 Subject: [PATCH 16/20] :construction: Helper script to prepare back dist Signed-off-by: mathieu.brunot --- backend/scripts/prepare-release.sh | 9 +++++++-- manage.sh | 31 +++++++++++------------------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/backend/scripts/prepare-release.sh b/backend/scripts/prepare-release.sh index a247728c1..5cc12247f 100644 --- a/backend/scripts/prepare-release.sh +++ b/backend/scripts/prepare-release.sh @@ -1,5 +1,10 @@ #!/usr/bin/env bash -rm -rf ../dist || exit 1; +if [ ! -d "$1" ] || [ ! -d "$2" ]; then + echo "Expecting path to backend and destination directory" + exit 1 +fi + +rm -rf $2 || exit 1; rsync -avr \ --exclude="/test" \ @@ -7,4 +12,4 @@ rsync -avr \ --exclude="/target" \ --exclude="/scripts" \ --exclude="/.*" \ - ../ ../dist/; + $1 $2; diff --git a/manage.sh b/manage.sh index 9a8e2abfa..9fbb18321 100755 --- a/manage.sh +++ b/manage.sh @@ -128,26 +128,17 @@ function build-release-frontend { } function build-release-backend-local { - #if ! $(docker images | grep $IMGNAME | grep -q $REV); then - # build-devenv - #fi - #mkdir -p $HOME/.m2 - #CONTAINER=$IMGNAME:latest - #echo "Running development image $CONTAINER to build backend release..." - #docker run -ti --rm \ - # -w /home/uxbox/uxbox/backend \ - # -v `pwd`:/home/uxbox/uxbox \ - # -v $HOME/.m2:/home/uxbox/.m2 \ - # $CONTAINER ./scripts/prepare-release.sh - rm -rf backend/dist || exit 1; - rsync -avr \ - --exclude="/test" \ - --exclude="/resources/public/media" \ - --exclude="/target" \ - --exclude="/scripts" \ - --exclude="/.*" \ - backend/ backend/dist/; -} + echo "Prepare backend release..." + ./backend/scripts/prepare-release.sh backend/ backend/dist/ + #rm -rf backend/dist || exit 1; + #rsync -avr \ + # --exclude="/test" \ + # --exclude="/resources/public/media" \ + # --exclude="/target" \ + # --exclude="/scripts" \ + # --exclude="/.*" \ + # backend/ backend/dist/; +}# function build-release-backend { build-release-backend-local || exit 1; From d06a0bb501b7ce82a12a30ceb21e0fce8f70751e Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Sun, 23 Jun 2019 19:15:14 +0200 Subject: [PATCH 17/20] :bug: Fix control on entry parameters Signed-off-by: mathieu.brunot --- backend/scripts/prepare-release.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/scripts/prepare-release.sh b/backend/scripts/prepare-release.sh index 5cc12247f..09c17ba2f 100644 --- a/backend/scripts/prepare-release.sh +++ b/backend/scripts/prepare-release.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -if [ ! -d "$1" ] || [ ! -d "$2" ]; then - echo "Expecting path to backend and destination directory" + +if [ "$#" -ne 0 ]; then + echo "Expecting parameters: 1=path to backend; 2=destination directory" exit 1 fi From 5688196ea7694a3aed3495d0dc104a213644bd5e Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Sun, 23 Jun 2019 21:30:16 +0200 Subject: [PATCH 18/20] :pencil2: Fix typo Signed-off-by: mathieu.brunot --- manage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage.sh b/manage.sh index 9fbb18321..51b9cff90 100755 --- a/manage.sh +++ b/manage.sh @@ -138,7 +138,7 @@ function build-release-backend-local { # --exclude="/scripts" \ # --exclude="/.*" \ # backend/ backend/dist/; -}# +} function build-release-backend { build-release-backend-local || exit 1; From 0720ea0e97d0a445768c1a8a641bc9f631d62020 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Sun, 23 Jun 2019 22:48:31 +0200 Subject: [PATCH 19/20] :bug: Fix scripts permissions Signed-off-by: mathieu.brunot --- backend/scripts/build-tests.sh | 0 backend/scripts/prepare-release.sh | 0 backend/scripts/smtpd.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 backend/scripts/build-tests.sh mode change 100644 => 100755 backend/scripts/prepare-release.sh mode change 100644 => 100755 backend/scripts/smtpd.sh diff --git a/backend/scripts/build-tests.sh b/backend/scripts/build-tests.sh old mode 100644 new mode 100755 diff --git a/backend/scripts/prepare-release.sh b/backend/scripts/prepare-release.sh old mode 100644 new mode 100755 diff --git a/backend/scripts/smtpd.sh b/backend/scripts/smtpd.sh old mode 100644 new mode 100755 From 495eec6c4167fec827c1cc9a75b3cf0469bb0920 Mon Sep 17 00:00:00 2001 From: "mathieu.brunot" Date: Mon, 24 Jun 2019 01:14:17 +0200 Subject: [PATCH 20/20] :pencil2: Fix dumb typo in test to build back Signed-off-by: mathieu.brunot --- backend/scripts/prepare-release.sh | 2 +- manage.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/scripts/prepare-release.sh b/backend/scripts/prepare-release.sh index 09c17ba2f..5c7b0e9fa 100755 --- a/backend/scripts/prepare-release.sh +++ b/backend/scripts/prepare-release.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -if [ "$#" -ne 0 ]; then +if [ "$#" -e 0 ]; then echo "Expecting parameters: 1=path to backend; 2=destination directory" exit 1 fi diff --git a/manage.sh b/manage.sh index 51b9cff90..1f12a921b 100755 --- a/manage.sh +++ b/manage.sh @@ -129,7 +129,7 @@ function build-release-frontend { function build-release-backend-local { echo "Prepare backend release..." - ./backend/scripts/prepare-release.sh backend/ backend/dist/ + ./backend/scripts/prepare-release.sh ./backend/ ./backend/dist/ #rm -rf backend/dist || exit 1; #rsync -avr \ # --exclude="/test" \