woodpecker/plugin/deploy/deployment.go

68 lines
1.9 KiB
Go
Raw Normal View History

2014-02-07 10:10:01 +00:00
package deploy
import (
"github.com/drone/drone/plugin/condition"
2014-06-04 21:25:38 +00:00
"github.com/drone/drone/shared/build/buildfile"
"github.com/drone/drone/shared/build/repo"
2014-02-07 10:10:01 +00:00
)
// Deploy stores the configuration details
// for deploying build artifacts when
// a Build has succeeded
type Deploy struct {
AppFog *AppFog `yaml:"appfog,omitempty"`
CloudControl *CloudControl `yaml:"cloudcontrol,omitempty"`
CloudFoundry *CloudFoundry `yaml:"cloudfoundry,omitempty"`
EngineYard *EngineYard `yaml:"engineyard,omitempty"`
Git *Git `yaml:"git,omitempty"`
2014-02-07 10:10:01 +00:00
Heroku *Heroku `yaml:"heroku,omitempty"`
Modulus *Modulus `yaml:"modulus,omitempty"`
2014-02-07 10:10:01 +00:00
Nodejitsu *Nodejitsu `yaml:"nodejitsu,omitempty"`
Openshift *Openshift `yaml:"openshift,omitempty"`
2014-02-23 13:19:00 +00:00
SSH *SSH `yaml:"ssh,omitempty"`
2014-03-23 02:22:01 +00:00
Tsuru *Tsuru `yaml:"tsuru,omitempty"`
Bash *Bash `yaml:"bash,omitempty"`
2014-02-07 10:10:01 +00:00
}
func (d *Deploy) Write(f *buildfile.Buildfile, r *repo.Repo) {
if d.CloudFoundry != nil && match(d.CloudFoundry.GetCondition(), r) {
2014-02-07 10:10:01 +00:00
d.CloudFoundry.Write(f)
}
if d.Git != nil && match(d.Git.GetCondition(), r) {
d.Git.Write(f)
}
if d.Heroku != nil && match(d.Heroku.GetCondition(), r) {
2014-02-07 10:10:01 +00:00
d.Heroku.Write(f)
}
if d.Modulus != nil && match(d.Modulus.GetCondition(), r) {
d.Modulus.Write(f)
}
if d.Nodejitsu != nil && match(d.Nodejitsu.GetCondition(), r) {
2014-02-07 10:10:01 +00:00
d.Nodejitsu.Write(f)
}
if d.SSH != nil && match(d.SSH.GetCondition(), r) {
2014-02-23 13:19:00 +00:00
d.SSH.Write(f)
}
if d.Tsuru != nil && match(d.Tsuru.GetCondition(), r) {
2014-03-23 02:22:01 +00:00
d.Tsuru.Write(f)
}
if d.Bash != nil && match(d.Bash.GetCondition(), r) {
d.Bash.Write(f)
}
2014-02-07 10:10:01 +00:00
}
func match(c *condition.Condition, r *repo.Repo) bool {
switch {
case c == nil:
return true
case !c.MatchBranch(r.Branch):
return false
case !c.MatchOwner(r.Name):
return false
case !c.MatchPullRequest(r.PR):
return false
}
return true
}