Website/.drone-docker.yml

181 lines
4.7 KiB
YAML
Raw Normal View History

kind: pipeline
2021-10-30 16:40:30 +00:00
type: docker
2022-05-06 21:55:24 -04:00
name: db deployment
trigger:
event:
- push
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:
from_secret: deploy_username
DEPLOY_PRIVATE_KEY:
from_secret: deploy_ssh_key
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
2021-11-15 21:22:51 -05:00
- name: install dependencies and build frontend
image: node:lts-alpine3.14
commands:
- node -v
- npm -v
- yarn --version
- yarn --cwd ./items/frontend install
2021-11-15 21:22:51 -05:00
- yarn --cwd ./items/frontend build --pure-lockfile
- rm -rf ./items/api/public/static/*
2021-11-15 22:41:10 -05:00
- cp -r ./items/frontend/build/* ./items/api/public
2021-11-15 21:22:51 -05:00
- rm ./items/api/public/index.html
2021-11-14 15:43:50 -05:00
depends_on:
- replace hosts and user variables
- name: frontend
2021-11-15 21:22:51 -05:00
image: nginx:1.21.4-alpine
2021-11-14 15:43:50 -05:00
commands:
2021-11-15 22:41:10 -05:00
- 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;"
2021-11-14 15:43:50 -05:00
detach: true
depends_on:
2021-11-15 21:22:51 -05:00
- install dependencies and build frontend
- name: test frontend
2021-11-14 15:49:02 -05:00
image: cypress/browsers:node16.5.0-chrome94-ff93
commands:
- node -v
- npm -v
- yarn --version
2021-11-15 22:41:10 -05:00
- yarn --cwd ./items/frontend cy:ci
2021-11-14 15:43:50 -05:00
depends_on:
2021-11-15 21:22:51 -05:00
- install dependencies and build frontend
2022-05-06 21:49:53 -04:00
- name: check db ansible syntax
image: plugins/ansible:3
settings:
playbook: ./.ansible-items/playbook.yml
inventory: ./.ansible-items/inventory
galaxy: ./.ansible-items/requirements.yml
syntax_check: true
2022-05-06 21:49:53 -04:00
depends_on:
- clone
when:
branch:
- development
- name: apply ansible playbook for items database
image: plugins/ansible:3
settings:
playbook: ./.ansible-items/playbook.yml
inventory: ./.ansible-items/inventory
galaxy: ./.ansible-items/requirements.yml
timeout: 60
verbose: 2
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: db_deploy_path
2021-11-14 15:43:50 -05:00
depends_on:
2021-11-15 21:22:51 -05:00
- test frontend
when:
branch:
- master
2022-05-06 21:49:53 -04:00
- main
event:
- promote
target:
- db
---
kind: pipeline
type: docker
2022-05-06 21:55:24 -04:00
name: website deployment
2022-05-06 21:49:53 -04:00
trigger:
event:
- promote
branch:
- development
2022-05-06 21:49:53 -04:00
- main
- master
2022-05-06 21:49:53 -04:00
steps:
- name: check website ansible syntax
image: plugins/ansible:3
settings:
playbook: ./.ansible-website/playbook.yml
inventory: ./.ansible-website/inventory
galaxy: ./.ansible-website/requirements.yml
syntax_check: true
branch:
- development
2022-05-06 22:14:47 -04:00
- main
- master
2022-05-06 21:49:53 -04:00
target:
- website
2022-05-06 21:56:37 -04:00
- name: check ansible playbook website
2022-05-06 21:49:53 -04:00
image: plugins/ansible:3
settings:
playbook: ./.ansible-website/playbook.yml
inventory: ./.ansible-website/inventory
galaxy: ./.ansible-website/requirements.yml
timeout: 60
verbose: 2
check: true
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
branch:
- development
2022-05-06 21:49:53 -04:00
target:
2022-05-06 22:14:47 -04:00
- website
2022-05-06 21:49:53 -04:00
- name: apply ansible playbook website
image: plugins/ansible:3
settings:
playbook: ./.ansible-website/playbook.yml
inventory: ./.ansible-website/inventory
galaxy: ./.ansible-website/requirements.yml
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
branch:
- main
- master
2022-05-06 21:49:53 -04:00
target:
- website