Drone Deployment Plugin
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
Then the compressed tarball gets uploaded, extracted and deleted, leaving only the files specified by
sources inside of the
Afterwards all the commands inside of
commands will get executed at the
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`
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.