cupcakearmy / drone-deploy

Deployment Plugin for Drone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Deployment Plugin for Drone

License:MIT License


Languages

Language:Python 91.5%Language:Dockerfile 8.5%