diff --git a/.travis.yml b/.travis.yml index aff27194..3efb63ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,31 +3,40 @@ language: node_js node_js: - "8.11.1" +cache: + directories: + - "$HOME/google-cloud-sdk/" + services: - docker -stages: - - test - - build +before_install: + - docker-compose -f docker-compose-development.yml up -d + - docker ps -a -jobs: - include: - - stage: test - before_install: - - docker-compose -f docker-compose-development.yml up -d - - docker ps -a - install: true - script: - # Run unit tests in the app container - - docker-compose exec -T app npm run test --verbose - - stage: build - if: branch = master OR branch = production-docker - env: - - APP_IMAGE_NAME=p5jswebeditor_app - script: - - docker-compose stop - - docker-compose build --no-cache - - docker image ls - - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - docker tag $APP_IMAGE_NAME $DOCKER_USERNAME/$DOCKER_REPOSITORY:latest - - docker push $DOCKER_USERNAME/$DOCKER_REPOSITORY:latest +install: true + +script: + - docker-compose exec -T app npm run test --verbose + +after_success: + - docker-compose stop + +before_deploy: + - if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf $HOME/google-cloud-sdk; export CLOUDSDK_CORE_DISABLE_PROMPTS=1; curl https://sdk.cloud.google.com | bash; fi + - source /home/travis/google-cloud-sdk/path.bash.inc + - gcloud --quiet version + - gcloud --quiet components update + - gcloud --quiet components beta update + - gcloud --quiet components update kubectl + +deploy: + - provider: script + script: bash deploy.sh + skip_cleanup: true + on: + branch: master OR production-docker + +env: + global: + - APP_IMAGE_NAME=p5jswebeditor_app diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 00000000..e15651c0 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -e + +docker-compose build --no-cache +docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" +docker tag $APP_IMAGE_NAME $DOCKER_USERNAME/$DOCKER_REPOSITORY:$TRAVIS_COMMIT +docker push $DOCKER_USERNAME/$DOCKER_REPOSITORY:$TRAVIS_COMMIT + +# echo $GCLOUD_SERVICE_KEY_PRD | base64 --decode -i > ${HOME}/gcloud-service-key.json +# gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json + +# gcloud --quiet config set project $PROJECT_NAME_PRD +# gcloud --quiet config set container/cluster $CLUSTER_NAME_PRD +# gcloud --quiet config set compute/zone ${CLOUDSDK_COMPUTE_ZONE} +# gcloud --quiet container clusters get-credentials $CLUSTER_NAME_PRD + +# gcloud docker push gcr.io/${PROJECT_NAME_PRD}/${DOCKER_IMAGE_NAME} + +# yes | gcloud beta container images add-tag gcr.io/${PROJECT_NAME_PRD}/${DOCKER_IMAGE_NAME}:$TRAVIS_COMMIT gcr.io/${PROJECT_NAME_PRD}/${DOCKER_IMAGE_NAME}:latest + +# kubectl config view +# kubectl config current-context + +# kubectl set image deployment/${KUBE_DEPLOYMENT_NAME} ${KUBE_DEPLOYMENT_CONTAINER_NAME}=gcr.io/${PROJECT_NAME_PRD}/${DOCKER_IMAGE_NAME}:$TRAVIS_COMMIT + +# sleep 30 +# npm run e2e_test \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e9e50f5a..cb1762a8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,16 +18,6 @@ services: - MONGO_INITDB_DATABASE - MONGO_RW_USERNAME - MONGO_RW_PASSWORD - nginx: - image: nginx:1.13 - volumes: - - "$PWD/nginx/alpha.editor.p5js.org.conf:/etc/nginx/conf.d/default.conf" - ports: - - '80:80' - depends_on: - - app - links: - - app app: build: context: . @@ -73,7 +63,6 @@ services: - /opt/node/app/node_modules ports: - '8000:8000' - # - '443:443' depends_on: - mongo volumes: diff --git a/nginx/alpha.editor.p5js.org.conf b/nginx/alpha.editor.p5js.org.conf deleted file mode 100644 index 884d68bb..00000000 --- a/nginx/alpha.editor.p5js.org.conf +++ /dev/null @@ -1,61 +0,0 @@ - # HTTP - redirect all requests to HTTPS: - server { - listen 80; - #server_name alpha.editor.p5js.org; - location / { - proxy_pass http://app:8000; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - } - # location ~* \/login(\/)* { - # return 301 https://$host$request_uri; - # } - # location ~* \/signup(\/)* { - # return 301 https://$host$request_uri; - # } - # location ~* \/reset-password(\/)* { - # return 301 https://$host$request_uri; - # } - # location ~* "\/[a-zA-Z0-9._-]{1,20}\/account(\/)*" { - # return 301 https://$host$request_uri; - # } - -} - -# server { -# listen 443; -# ssl on; -# ssl_certificate /etc/letsencrypt/live/alpha.editor.p5js.org/fullchain.pem; -# ssl_certificate_key /etc/letsencrypt/live/alpha.editor.p5js.org/privkey.pem; -# server_name alpha.editor.p5js.org; -# location / { -# proxy_pass http://127.0.0.1:8000; -# proxy_http_version 1.1; -# proxy_set_header Upgrade $http_upgrade; -# proxy_set_header Connection 'upgrade'; -# proxy_set_header Host $host; -# proxy_cache_bypass $http_upgrade; -# } -# } - -# server { -# listen 80; -# server_name editor.p5js.org; -# location ~ ^/(.*) { -# return 302 http://alpha.editor.p5js.org/$1; -# } -# } - -# server { -# listen 443; -# ssl on; -# ssl_certificate /etc/letsencrypt/live/editor.p5js.org/fullchain.pem; -# ssl_certificate_key /etc/letsencrypt/live/editor.p5js.org/privkey.pem; -# server_name editor.p5js.org; -# location ~ ^/(.*) { -# return 302 https://alpha.editor.p5js.org/$1; -# } -# } \ No newline at end of file