From eb03dbb5bd50677ad3e41c02e3fec77cad527eb5 Mon Sep 17 00:00:00 2001 From: FyloZ Date: Sun, 1 Aug 2021 00:28:40 -0400 Subject: [PATCH] Add drone CI/CD --- .drone.yml | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index c85ce09..655c64f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,8 +1,75 @@ kind: pipeline name: default +type: docker + +environment: + GRADLE_VERSION: 7.1 + JDK_VERSION: 11 + CRE_VERSION: $DRONE_PULL_REQUEST + CRE_ARTIFACT_NAME: ColorRecipesExplorer-backend-$CRE_VERSION + CRE_REGISTRY_IMAGE: registry.fyloz.dev:5443/colorrecipesexplorer/backend + CRE_PORT: 9090 steps: - name: test - image: gradle:7.1-jdk11 + image: gradle:$GRADLE_VERSION-jdk$JDK_VERSION commands: - gradle test + + - name: build + image: gradle:$GRADLE_VERSION-jdk$JDK_VERSION + commands: + - gradle bootJar -Pversion=$CRE_VERSION + - mv build/libs/ColorRecipesExplorer-$CRE_VERSION.jar $CRE_ARTIFACT_NAME + when: + branch: + - master + + - name: containerize + image: plugins/docker + settings: + build_args: + - JDK_VERSION=$JDK_VERSION + - PORT=$CRE_PORT + - ARTIFACT_NAME=$CRE_ARTIFACT_NAME + repo: $CRE_REGISTRY_IMAGE + tags: + - latest + - $CRE_VERSION + when: + branch: + - master + + - name: deploy + image: alpine:latest + environment: + DEPLOY_SERVER: + from_secret: deploy_server + DEPLOY_SERVER_USERNAME: + from_secret: deploy_server_username + DEPLOY_SERVER_SSH_PORT: + from_secret: deploy_server_ssh_port + DEPLOY_SERVER_SSH_KEY: + from_secret: deploy_server_ssh_key + DEPLOY_CONTAINER_NAME: cre_backend-$DRONE_BRANCH + DEPLOY_SPRING_PROFILES: mysql,rest + DEPLOY_DATA_VOLUME: /var/cre/data + DEPLOY_CONFIG_VOLUME: /var/cre/config + commands: + - apk update + - apk add --no-cache openssh-client + - mkdir -p ~/.ssh + - echo "$DEPLOY_SERVER_SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa + - chmod 700 ~/.ssh/id_rsa + - eval $(ssh-agent -s) + - ssh-add ~/.ssh/id_rsa + - ssh-keyscan -p $DEPLOY_SERVER_SSH_PORT -H $DEPLOY_SERVER >> ~/.ssh/known_hosts + - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' + - ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker stop $DEPLOY_CONTAINER_NAME || true && docker rm $DEPLOY_CONTAINER_NAME || true" + - ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker pull $CRE_REGISTRY_IMAGE:latest" + - ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker run -d -p $CRE_PORT:$CRE_PORT --name=$DEPLOY_CONTAINER_NAME -v $DEPLOY_DATA_VOLUME:/usr/bin/cre/data -v $DEPLOY_CONFIG_VOLUME:/usr/bin/cre/config -e spring_profiles_active=$SPRING_PROFILES $CRE_REGISTRY_IMAGE" + when: + branch: + - master + +