kind: pipeline
name: default
steps:
- name: build
image: node:11-alpine
pull: always
commands:
- npm i
- npm run build:prod
- name: deploy
image: cupcakearmy/drone-deploy
pull: always
settings:
host: example.org
user: root
key:
from_secret: ssh_key
# or with a password
# password: S3cr37Sh1zzl3
port: 69
target: /my/web/root/project
sources:
# To copy all the files
# - .
- ./public
- ./docker-compose.yml
- ./docker-compose.prod.yml
commands:
- docker-compose -f docker-compose.yml -f docker-compose.prod.yml down
- docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
when:
event: push
branch: master
The plugins creates a tarball compressing all the files included inside of sources
.
Then the compressed tarball gets uploaded, extracted and deleted, leaving only the files specified by sources
inside of the target
folder.
Afterwards all the commands inside of commands
will get executed at the target
directory.
Sometimes it's usefull to have a remote env with a secret. Here is how.
kind: pipeline
name: default
steps:
# build...
- name: deploy
image: cupcakearmy/drone-deploy
pull: always
settings:
# host, user, port, key, when, target ...
myvar: 'Something'
somesecret:
from_secret: mysecret
envs:
- myvar
- somesecret
commands:
- echo $MYENV # Outputs: Something
- echo $SOMESECRET # Outputs: Whatever is saved in drone as `mysecret`
If you don't want to specify single variables just use envs: all
and all the parameters inside of settings
will be available.
All the vars will be automagically be uppercased.