1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-12-30 10:11:23 +02:00

Add --secrets-file option to exec command

This commit is contained in:
Fabio Rapposelli 2016-06-10 11:06:39 +02:00
parent 30d55a224e
commit f9f90af793
No known key found for this signature in database
GPG Key ID: 3BF303AC750875CE

View File

@ -15,6 +15,7 @@ import (
"github.com/drone/drone/queue" "github.com/drone/drone/queue"
"github.com/codegangsta/cli" "github.com/codegangsta/cli"
"github.com/joho/godotenv"
) )
var execCmd = cli.Command{ var execCmd = cli.Command{
@ -41,6 +42,11 @@ var execCmd = cli.Command{
Usage: "build secrets in KEY=VALUE format", Usage: "build secrets in KEY=VALUE format",
EnvVar: "DRONE_SECRET", EnvVar: "DRONE_SECRET",
}, },
cli.StringFlag{
Name: "secrets-file",
Usage: "build secrets file in KEY=VALUE format",
EnvVar: "DRONE_SECRETS_FILE",
},
cli.StringSliceFlag{ cli.StringSliceFlag{
Name: "matrix", Name: "matrix",
Usage: "build matrix in KEY=VALUE format", Usage: "build matrix in KEY=VALUE format",
@ -401,7 +407,27 @@ func getMatrix(c *cli.Context) map[string]string {
// helper function to retrieve secret variables. // helper function to retrieve secret variables.
func getSecrets(c *cli.Context) []*model.Secret { func getSecrets(c *cli.Context) []*model.Secret {
var secrets []*model.Secret var secrets []*model.Secret
if c.String("secrets-file") != "" {
envs, _ := godotenv.Read(c.String("secrets-file"))
for k, v := range envs {
secret := &model.Secret{
Name: k,
Value: v,
Events: []string{
model.EventPull,
model.EventPush,
model.EventTag,
model.EventDeploy,
},
Images: []string{"*"},
}
secrets = append(secrets, secret)
}
}
for _, s := range c.StringSlice("secret") { for _, s := range c.StringSlice("secret") {
parts := strings.SplitN(s, "=", 2) parts := strings.SplitN(s, "=", 2)
if len(parts) != 2 { if len(parts) != 2 {