mirror of
https://github.com/harness/drone.git
synced 2025-05-06 18:52:05 +08:00
Add Dropbox plugin
This commit is contained in:
parent
f1c5a45b5a
commit
7898103663
@ -1 +1,37 @@
|
|||||||
package publish
|
package publish
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/drone/drone/plugin/condition"
|
||||||
|
"github.com/drone/drone/shared/build/buildfile"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Dropbox struct {
|
||||||
|
AccessToken string `yaml:"access_token,omitempty"`
|
||||||
|
|
||||||
|
Source string `yaml:"source,omitempty"`
|
||||||
|
Target string `yaml:"target,omitempty"`
|
||||||
|
|
||||||
|
Condition *condition.Condition `yaml:"when,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Dropbox) Write(f *buildfile.Buildfile) {
|
||||||
|
|
||||||
|
if len(d.AccessToken) == 0 || len(d.Source) == 0 || len(d.Target) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(d.Target, "/") {
|
||||||
|
d.Target = d.Target[1:]
|
||||||
|
}
|
||||||
|
|
||||||
|
f.WriteCmdSilent("echo 'publishing to Dropbox ...'")
|
||||||
|
|
||||||
|
cmd := "curl --upload-file %s -H \"Authorization: Bearer %s\" \"https://api-content.dropbox.com/1/files_put/auto/%s?overwrite=true\""
|
||||||
|
f.WriteCmd(fmt.Sprintf(cmd, d.Source, d.AccessToken, d.Target))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Dropbox) GetCondition() *condition.Condition {
|
||||||
|
return d.Condition
|
||||||
|
}
|
||||||
|
@ -11,12 +11,13 @@ import (
|
|||||||
// for publishing build artifacts when
|
// for publishing build artifacts when
|
||||||
// a Build has succeeded
|
// a Build has succeeded
|
||||||
type Publish struct {
|
type Publish struct {
|
||||||
S3 *S3 `yaml:"s3,omitempty"`
|
S3 *S3 `yaml:"s3,omitempty"`
|
||||||
Swift *Swift `yaml:"swift,omitempty"`
|
Swift *Swift `yaml:"swift,omitempty"`
|
||||||
PyPI *PyPI `yaml:"pypi,omitempty"`
|
PyPI *PyPI `yaml:"pypi,omitempty"`
|
||||||
NPM *npm.NPM `yaml:"npm,omitempty"`
|
NPM *npm.NPM `yaml:"npm,omitempty"`
|
||||||
Docker *Docker `yaml:"docker,omitempty"`
|
Docker *Docker `yaml:"docker,omitempty"`
|
||||||
Github *Github `yaml:"github,omitempty"`
|
Github *Github `yaml:"github,omitempty"`
|
||||||
|
Dropbox *Dropbox `yaml:"dropbox,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Publish) Write(f *buildfile.Buildfile, r *repo.Repo) {
|
func (p *Publish) Write(f *buildfile.Buildfile, r *repo.Repo) {
|
||||||
@ -49,6 +50,11 @@ func (p *Publish) Write(f *buildfile.Buildfile, r *repo.Repo) {
|
|||||||
if p.Docker != nil && match(p.Docker.GetCondition(), r) {
|
if p.Docker != nil && match(p.Docker.GetCondition(), r) {
|
||||||
p.Docker.Write(f)
|
p.Docker.Write(f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dropbox
|
||||||
|
if p.Dropbox != nil && match(p.Dropbox.GetCondition(), r) {
|
||||||
|
p.Dropbox.Write(f)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func match(c *condition.Condition, r *repo.Repo) bool {
|
func match(c *condition.Condition, r *repo.Repo) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user