diff --git a/.travis.yml b/.travis.yml index b127b8313..20fb25d70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,9 @@ notifications: on_failure: always template: - "Build <%{build_url}|#%{build_number}> (<%{compare_url}|%{commit}>) of %{repository_slug}@%{branch} in PR <%{pull_request_url}|#%{pull_request_number}> by %{author} %{result} in %{duration}" +env: + global: + - COMMIT=${TRAVIS_COMMIT::8} stages: - name: test if: branch =~ /^release-.*$/ OR branch IN (develop, master) @@ -26,31 +29,36 @@ jobs: - script: "npm run postman_test" - stage: dev_deploy before_install: - - sudo apt-get install sshpass + - sudo apt-get install sshpass script: skip before_deploy: - - npm pack - #- export VERSION=`npm view iofogcontroller version` + - npm pack deploy: skip_cleanup: true provider: script script: - - sshpass -p $EDGEWORX_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $EDGEWORX_USERNAME@$EDGEWORX_IP:/var/www/vhosts/edgeworx.io/downloads/builds/iofogcontroller.tgz + - sshpass -p $EDGEWORX_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz + $EDGEWORX_USERNAME@$EDGEWORX_IP:/var/www/vhosts/edgeworx.io/downloads/builds/iofogcontroller.tgz on: branch: develop after_deploy: - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller/*" - - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP + "iofog-controller stop; rm -f /iofogcontroller/*" + - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz + $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller + - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP + "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + - docker build -t iofog/controller-develop:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push iofog/controller-develop:latest + - docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT + - docker push iofog/controller-develop:$COMMIT - stage: pre_release_deploy before_install: - - sudo apt-get install sshpass + - sudo apt-get install sshpass script: skip - #- npm version prerelease --preid=prerelease -m "upgrade to %s for prerelease package" + before_deploy: + - npm pack deploy: skip_cleanup: true provider: npm @@ -60,13 +68,20 @@ jobs: on: all_branches: true after_deploy: - - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP - "iofog-controller stop; npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" + - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP + "iofog-controller stop; npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" + - export VERSION=`npm view iofogcontroller version` + - docker build -t iofog/controller:rc --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push iofog/controller:rc + - docker tag iofog/controller:rc iofog/controller:rc-$VERSION + - docker push iofog/controller:rc-$VERSION - stage: release_deploy before_install: - - sudo apt-get install sshpass + - sudo apt-get install sshpass script: skip - #- npm version patch -m "upgrade to %s for release" + before_deploy: + - npm pack deploy: skip_cleanup: true provider: npm @@ -76,5 +91,11 @@ jobs: on: branch: master after_deploy: - - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP - "iofog-controller stop; npm update --unsafe-perm -g iofogcontroller; iofog-controller start" + - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP + "iofog-controller stop; npm update --unsafe-perm -g iofogcontroller; iofog-controller start" + - export VERSION=`npm view iofogcontroller version` + - docker build -t iofog/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push iofog/controller:latest + - docker tag iofog/controller:latest iofog/controller:$VERSION + - docker push iofog/controller:$VERSION diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 000000000..dde6db245 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,13 @@ +FROM node:alpine + +ARG FILENAME +ENV NODE_ENV=development + +COPY ${FILENAME} /tmp + +RUN npm i --unsafe-perm -g /tmp/${FILENAME} && \ + rm /tmp/${FILENAME} && \ + iofog-controller config dev-mode --on && \ + echo "iofog-controller start && tail -f /dev/null" >> /start.sh + +CMD [ "sh", "/start.sh" ] \ No newline at end of file diff --git a/Dockerfile.rel b/Dockerfile.rel new file mode 100644 index 000000000..9b99a1fd5 --- /dev/null +++ b/Dockerfile.rel @@ -0,0 +1,11 @@ +FROM node:alpine + +ARG FILENAME + +COPY ${FILENAME} /tmp + +RUN npm i --unsafe-perm -g /tmp/${FILENAME} && \ + rm /tmp/${FILENAME} && \ + echo "iofog-controller start && tail -f /dev/null" >> /start.sh + +CMD [ "sh", "/start.sh" ] \ No newline at end of file