exemplo de config fazendo copia para servidor via ssh ideal para deploy de arquivos estáticos. não recomendado para deploy de aplicações node pois podem depender de dependencias no node_modules
circleci
version: 2.1
orbs:
node: circleci/node@1.1.6
jobs:
build-and-test:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- run: npm install
- run: npm test
- run: npm run build:production
- run: ssh -oStrictHostKeyChecking=no -v $SSH_USER@$SSH_HOST -t "cd /var/www/ && sudo rm -rf $APP_FOLDER && sudo mkdir $APP_FOLDER && sudo chmod 777 $APP_FOLDER && exit; bash --login"
- run: scp -oStrictHostKeyChecking=no -rp ./dist/* $SSH_USER@$SSH_HOST:/var/www/$APP_FOLDER
deploy:
# executor:
# name: node/default
machine:
enabled: true
steps:
# - run:
# name: Get sshpass
# command: sudo apt-get install sshpass
- run:
name: Deploy Over SSH
command: |
ssh -oStrictHostKeyChecking=no -v $SSH_USER@$SSH_HOST -t "cd /var/www/ && sudo rm -rf $APP_FOLDER && sudo git clone https://github.com/topogigiovanni/piral-service.git $APP_FOLDER && cd $APP_FOLDER && sudo sh post_deployment.sh && exit; bash --login"
workflows:
version: 2
build-and-deploy:
jobs:
- build-and-test:
# - deploy:
# requires:
# - build-and-test # only deploy once build job has completed
filters:
branches:
only: master # only deploy on the master branch