mirror of
https://github.com/cupcakearmy/drone-deploy.git
synced 2024-10-09 11:13:39 +02:00
1.9 KiB
1.9 KiB
Drone Deployment Plugin
Quickstart 🚀
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
Details 📒
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.
Mapping remote environment variables 🗺
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`
Note
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.