From 9bd7706ca3e414aeaff9c87f7e8cfd3223c30041 Mon Sep 17 00:00:00 2001 From: Kir Shatrov Date: Thu, 20 Mar 2014 00:36:14 +0400 Subject: [PATCH] Deployment with Bash command Using this piece of YAML: ``` deploy: bash: command: 'bundle exec cap production deploy' ``` Will run Capistrano and deploy your app to production. You can use any other deployment tool instead of Capistrano. --- README.md | 1 + pkg/plugin/deploy/bash.go | 13 +++++++++++++ pkg/plugin/deploy/deployment.go | 4 ++++ 3 files changed, 18 insertions(+) create mode 100644 pkg/plugin/deploy/bash.go diff --git a/README.md b/README.md index 3aa158c6..a8438030 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ Drone currently has these `deploy` and `publish` plugins implemented (more to co - [nodejitsu](#docs) - [ssh](#docs) - [tsuru](#docs) +- [bash](#docs) **publish** - [Amazon s3](#docs) diff --git a/pkg/plugin/deploy/bash.go b/pkg/plugin/deploy/bash.go new file mode 100644 index 00000000..c8b0a193 --- /dev/null +++ b/pkg/plugin/deploy/bash.go @@ -0,0 +1,13 @@ +package deploy + +import ( + "github.com/drone/drone/pkg/build/buildfile" +) + +type Bash struct { + Command string `yaml:"command,omitempty"` +} + +func (g *Bash) Write(f *buildfile.Buildfile) { + f.WriteCmd(g.Command) +} diff --git a/pkg/plugin/deploy/deployment.go b/pkg/plugin/deploy/deployment.go index 44aef7fc..afb5c8a1 100644 --- a/pkg/plugin/deploy/deployment.go +++ b/pkg/plugin/deploy/deployment.go @@ -19,6 +19,7 @@ type Deploy struct { Openshift *Openshift `yaml:"openshift,omitempty"` SSH *SSH `yaml:"ssh,omitempty"` Tsuru *Tsuru `yaml:"tsuru,omitempty"` + Bash *Bash `yaml:"bash,omitempty"` } func (d *Deploy) Write(f *buildfile.Buildfile) { @@ -55,4 +56,7 @@ func (d *Deploy) Write(f *buildfile.Buildfile) { if d.Tsuru != nil { d.Tsuru.Write(f) } + if d.Bash != nil { + d.Bash.Write(f) + } }