From ec9171ceadaa457265a4659c815472a3a351e8db Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Mon, 26 Jun 2017 15:27:53 -0400 Subject: [PATCH] inject globals --- model/environ.go | 28 +++++----------------------- server/build.go | 14 ++++++++++++++ server/hook.go | 9 +++++++++ server/rpc.go | 1 + 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/model/environ.go b/model/environ.go index 67f665fec..3e3e00b5b 100644 --- a/model/environ.go +++ b/model/environ.go @@ -2,7 +2,6 @@ package model import ( "errors" - "path/filepath" ) var ( @@ -23,24 +22,9 @@ type EnvironStore interface { // Environ represents an environment variable. // swagger:model environ type Environ struct { - ID int64 `json:"id" meddler:"env_id,pk"` - Name string `json:"name" meddler:"env_name"` - Value string `json:"value,omitempty" meddler:"env_value"` - Images []string `json:"image" meddler:"env_images,json"` - Events []string `json:"event" meddler:"env_events,json"` -} - -// Match returns true if an image and event match the restricted list. -func (e *Environ) Match(event string) bool { - if len(e.Events) == 0 { - return true - } - for _, pattern := range e.Events { - if match, _ := filepath.Match(pattern, event); match { - return true - } - } - return false + ID int64 `json:"id" meddler:"env_id,pk"` + Name string `json:"name" meddler:"env_name"` + Value string `json:"value,omitempty" meddler:"env_value"` } // Validate validates the required fields and formats. @@ -58,9 +42,7 @@ func (e *Environ) Validate() error { // Copy makes a copy of the environment variable without the value. func (e *Environ) Copy() *Environ { return &Environ{ - ID: e.ID, - Name: e.Name, - Images: e.Images, - Events: e.Events, + ID: e.ID, + Name: e.Name, } } diff --git a/server/build.go b/server/build.go index 44fbf95d6..f709245a2 100644 --- a/server/build.go +++ b/server/build.go @@ -205,6 +205,13 @@ func PostApproval(c *gin.Context) { if err != nil { logrus.Debugf("Error getting registry credentials for %s#%d. %s", repo.FullName, build.Number, err) } + envs := map[string]string{} + if Config.Services.Environ != nil { + globals, _ := Config.Services.Environ.EnvironList(repo) + for _, global := range globals { + envs[global.Name] = global.Value + } + } defer func() { uri := fmt.Sprintf("%s/%s/%d", httputil.GetURL(c.Request), repo.FullName, build.Number) @@ -223,6 +230,7 @@ func PostApproval(c *gin.Context) { Regs: regs, Link: httputil.GetURL(c.Request), Yaml: conf.Data, + Envs: envs, } items, err := b.Build() if err != nil { @@ -484,6 +492,12 @@ func PostBuild(c *gin.Context) { if err != nil { logrus.Debugf("Error getting registry credentials for %s#%d. %s", repo.FullName, build.Number, err) } + if Config.Services.Environ != nil { + globals, _ := Config.Services.Environ.EnvironList(repo) + for _, global := range globals { + buildParams[global.Name] = global.Value + } + } b := builder{ Repo: repo, diff --git a/server/hook.go b/server/hook.go index e8b21efcb..c427d176d 100644 --- a/server/hook.go +++ b/server/hook.go @@ -201,6 +201,14 @@ func PostHook(c *gin.Context) { return } + envs := map[string]string{} + if Config.Services.Environ != nil { + globals, _ := Config.Services.Environ.EnvironList(repo) + for _, global := range globals { + envs[global.Name] = global.Value + } + } + secs, err := Config.Services.Secrets.SecretListBuild(repo, build) if err != nil { logrus.Debugf("Error getting secrets for %s#%d. %s", repo.FullName, build.Number, err) @@ -234,6 +242,7 @@ func PostHook(c *gin.Context) { Netrc: netrc, Secs: secs, Regs: regs, + Envs: envs, Link: httputil.GetURL(c.Request), Yaml: conf.Data, } diff --git a/server/rpc.go b/server/rpc.go index 099bcfccb..6fceca422 100644 --- a/server/rpc.go +++ b/server/rpc.go @@ -35,6 +35,7 @@ var Config = struct { Senders model.SenderService Secrets model.SecretService Registries model.RegistryService + Environ model.EnvironService } Storage struct { // Users model.UserStore