diff --git a/.deployment/deploy-deepforge b/.deployment/deploy-deepforge index b15a18107..9ade67647 100755 --- a/.deployment/deploy-deepforge +++ b/.deployment/deploy-deepforge @@ -4,15 +4,19 @@ export DEEPFORGE_DEPLOYMENT_DIR . ~/.nvm/nvm.sh -SERVER_NAME=server +SERVER_NAME="server" + +if [[ $1 = "stable" ]]; then + SERVER_NAME="server_stable" +fi; # Merging the custom override yml file yaml-merge docker/docker-compose.yml "$DEEPFORGE_DEPLOYMENT_DIR"/docker-compose-overrides.yml > custom-docker-compose.yml # Pulling the latest docker image, stopping the server, removing and restarting it -docker-compose --file custom-docker-compose.yml pull $SERVER_NAME -docker-compose --file custom-docker-compose.yml stop $SERVER_NAME -docker-compose --file custom-docker-compose.yml rm -f $SERVER_NAME -docker-compose --file custom-docker-compose.yml up -d $SERVER_NAME +docker-compose --file custom-docker-compose.yml -p deepforge pull $SERVER_NAME +docker-compose --file custom-docker-compose.yml -p deepforge stop $SERVER_NAME +docker-compose --file custom-docker-compose.yml -p deepforge rm -f $SERVER_NAME +docker-compose --file custom-docker-compose.yml -p deepforge up -d $SERVER_NAME docker image prune -f diff --git a/.deployment/dev-entrypoint.sh b/.deployment/dev-entrypoint.sh index 02dfaee96..4057e29bc 100755 --- a/.deployment/dev-entrypoint.sh +++ b/.deployment/dev-entrypoint.sh @@ -5,3 +5,4 @@ pip uninstall tensorflow -y conda install tensorflow==1.14 -y deepforge start --server + diff --git a/.deployment/docker-compose-overrides.yml b/.deployment/docker-compose-overrides.yml index 47196e716..dce619774 100644 --- a/.deployment/docker-compose-overrides.yml +++ b/.deployment/docker-compose-overrides.yml @@ -6,3 +6,19 @@ services: - "${TOKEN_KEYS_DIR}:/token_keys" - "${DEEPFORGE_DEPLOYMENT_DIR}:/.deployment" + server_stable: + entrypoint: /.deployment/dev-entrypoint.sh + environment: + - "MONGO_URI=mongodb://mongo:27017/deepforge" + - "DEEPFORGE_HOST=https://editor.deepforge.org" + - "DEEPFORGE_PUBLIC_KEY=/token_keys/public_key" + - "DEEPFORGE_PRIVATE_KEY=/token_keys/private_key" + image: deepforge/kitchen-sink:stable + ports: + - "8889:8888" + volumes: + - "$HOME/.deepforge/blob:/data/blob" + - "${TOKEN_KEYS_DIR}:/token_keys" + - "${DEEPFORGE_DEPLOYMENT_DIR}:/.deployment" + depends_on: + - mongo diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 144b5673e..b6404840e 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -4,6 +4,9 @@ on: push: branches: - master + release: + types: + - published jobs: publish: @@ -11,23 +14,40 @@ jobs: steps: - uses: actions/checkout@v2 + + - name: Get Release Tags + id: get_release_tags + run: | + echo "::set-env name=RELEASE_TAG_NAME::$(echo ${GITHUB_REF} | sed -E 's/.*v?([0-9]+)\.([0-9]+)\.([0-9]+)?/\1.\2.\3,\1.\2,\1/')" + echo "::set-env name=TAG::stable" + if: github.event_name == 'release' + + - name: Get Push Tags + id: get_push_tags + run: | + echo "::set-env name=TAG::latest" + echo "::set-env name=RELEASE_TAG::$(echo ${GITHUB_REF:11})" + if: github.event_name == 'push' + - name: Publish to docker hub (server) uses: elgohr/Publish-Docker-Github-Action@master with: name: deepforge/server username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - tags: "latest" - dockerfile: docker/Dockerfile + tags: "${{ env.TAG }},${{ env.RELEASE_TAG }}" + tag_semver: "${{ env.TAG_SEMVER }}" - name: Publish to docker hub (kitchen-sink) uses: elgohr/Publish-Docker-Github-Action@master + with: name: deepforge/kitchen-sink username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - tags: "latest" - dockerfile: docker/Dockerfile.kitchensink + tags: "${{ env.TAG }},${{ env.RELEASE_TAG }}" + dockerfile: Dockerfile.kitchensink + buildargs: "TAG=${{ env.TAG }}" - name: Deploy (dev.deepforge.org) uses: appleboy/ssh-action@master @@ -40,3 +60,18 @@ jobs: script: | rm -rf deepforge && git clone git@github.com:deepforge-dev/deepforge && cd deepforge chmod +x ./.deployment/deploy-deepforge && ./.deployment/deploy-deepforge + if: github.event_name == 'push' + + - name: Deploy (editor.deepforge.org) + uses: appleboy/ssh-action@master + with: + username: ${{ secrets.USERNAME }} + host: ${{ secrets.HOST }} + key: ${{ secrets.KEY }} + port: ${{ secrets.PORT }} + passphrase: ${{ secrets.PASSPHRASE }} + script: | + rm -rf deepforge-stable && git clone git@github.com:deepforge-dev/deepforge-stable && cd deepforge-stable + git checkout -b stable $(git tag | tail -1) + chmod +x ./.deployment/deploy-deepforge && ./.deployment/deploy-deepforge stable + if: github.event_name == 'release' diff --git a/docker/Dockerfile.kitchensink b/docker/Dockerfile.kitchensink index 003629492..f80881ead 100644 --- a/docker/Dockerfile.kitchensink +++ b/docker/Dockerfile.kitchensink @@ -1,3 +1,4 @@ -FROM deepforge/server:latest +ARG TAG=latest +FROM deepforge/server:$TAG RUN deepforge extensions add deepforge-dev/deepforge-keras && deepforge create-env -f