From cfbfca33587da9d73e90d6923b819a6129f450d2 Mon Sep 17 00:00:00 2001 From: SPT-dev Date: Thu, 2 Mar 2023 21:25:05 -0500 Subject: [PATCH] fix: drone pipeline for kubernetes --- .drone-kubernetes.yml | 132 ++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 64 deletions(-) diff --git a/.drone-kubernetes.yml b/.drone-kubernetes.yml index f0c8d9d..a2c639b 100644 --- a/.drone-kubernetes.yml +++ b/.drone-kubernetes.yml @@ -1,20 +1,16 @@ kind: pipeline -type: kubernetes -name: default - -concurrency: - limit: 1 +type: docker +name: website deployment trigger: event: - push + - pull_request steps: - name: replace hosts and user variables image: ubuntu:impish environment: - SPT_ITEMS_HOSTNAME: - from_secret: spt_items_hostname DEPLOY_HOSTNAME: from_secret: deploy_hostname DEPLOY_USER: @@ -24,80 +20,88 @@ steps: DEPLOY_SSH_KEY_PASSPHRASE: from_secret: deploy_ssh_key_passphrase commands: - - sed -i 's/{{ SPT_ITEMS_HOSTNAME }}/'"$SPT_ITEMS_HOSTNAME"'/g' ./items/frontend/.env.example - - mv ./items/frontend/.env.example ./items/frontend/.env - echo "$DEPLOY_PRIVATE_KEY" > private.key && chmod 600 private.key - - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible-items/inventory - - sed -i 's/{{ DEPLOY_SSH_KEY_PASSPHRASE }}/'"$DEPLOY_SSH_KEY_PASSPHRASE"'/g' ./.ansible-items/inventory - - sed -i 's/{{ DEPLOY_USER }}/'"$DEPLOY_USER"'/g' ./.ansible-items/inventory - - - name: install dependencies and build frontend - image: node:lts-alpine3.14 - commands: - - node -v - - npm -v - - yarn --version - - yarn --cwd ./items/frontend install - - yarn --cwd ./items/frontend build --pure-lockfile - - rm -rf ./items/api/public/static/* - - cp -r ./items/frontend/build/* ./items/api/public - - rm ./items/api/public/index.html - depends_on: - - replace hosts and user variables - - - name: frontend - image: nginx:1.21.4-alpine - commands: - - cp -r ./items/frontend/build/* /usr/share/nginx/html - - cp ./items/frontend/src/cypress/nginx_config/default.conf /etc/nginx/conf.d/default.conf - - nginx -g "daemon off;" - detach: true - depends_on: - - install dependencies and build frontend - - - name: test frontend - image: cypress/browsers:node16.5.0-chrome94-ff93 - commands: - - node -v - - npm -v - - yarn --version - - yarn --cwd ./items/frontend cy:ci - depends_on: - - install dependencies and build frontend - - - name: check ansible syntax - image: plugins/ansible:3 - settings: - playbook: ./.ansible-items/playbook.yml - inventory: ./.ansible-items/inventory - galaxy: ./.ansible-items/requirements.yml - syntax_check: true + - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible/inventory + - sed -i 's/{{ DEPLOY_SSH_KEY_PASSPHRASE }}/'"$DEPLOY_SSH_KEY_PASSPHRASE"'/g' ./.ansible/inventory + - sed -i 's/{{ DEPLOY_USER }}/'"$DEPLOY_USER"'/g' ./.ansible/inventory when: branch: + - master - development + - main + - develop + event: + - push + - pull_request - - name: apply ansible playbook + - name: check website ansible syntax image: plugins/ansible:3 settings: - playbook: ./.ansible-items/playbook.yml - inventory: ./.ansible-items/inventory - galaxy: ./.ansible-items/requirements.yml + playbook: ./.ansible/playbook.yml + inventory: ./.ansible/inventory + syntax_check: true + depends_on: + - replace hosts and user variables + when: + branch: + - master + - development + - main + - develop + event: + - push + - pull_request + + - name: dry-run ansible playbook website + image: plugins/ansible:3 + settings: + playbook: ./.ansible/playbook.yml + inventory: ./.ansible/inventory timeout: 60 verbose: 2 + check: true environment: - SPT_ITEMS_HOSTNAME: - from_secret: spt_items_hostname DEPLOY_HOSTNAME: from_secret: deploy_hostname DEPLOY_USER: from_secret: deploy_username DEPLOY_USER_GROUP: from_secret: deploy_user_group - SPT_ITEMS_PATH: - from_secret: deploy_path + SPT_WEBSITE_PATH: + from_secret: website_deploy_path depends_on: - - test frontend + - check website ansible syntax when: branch: - master - - main \ No newline at end of file + - development + - main + - develop + event: + - push + - pull_request + + - name: apply ansible playbook website + image: plugins/ansible:3 + settings: + playbook: ./.ansible/playbook.yml + inventory: ./.ansible/inventory + timeout: 60 + verbose: 2 + environment: + DEPLOY_HOSTNAME: + from_secret: deploy_hostname + DEPLOY_USER: + from_secret: deploy_username + DEPLOY_USER_GROUP: + from_secret: deploy_user_group + SPT_WEBSITE_PATH: + from_secret: website_deploy_path + depends_on: + - check website ansible syntax + when: + branch: + - master + - main + event: + - push