Skip to content

Commit

Permalink
inject globals
Browse files Browse the repository at this point in the history
  • Loading branch information
bradrydzewski committed Jun 26, 2017
1 parent af9ef41 commit ec9171c
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 23 deletions.
28 changes: 5 additions & 23 deletions model/environ.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package model

import (
"errors"
"path/filepath"
)

var (
Expand All @@ -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.
Expand All @@ -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,
}
}
14 changes: 14 additions & 0 deletions server/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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 {
Expand Down Expand Up @@ -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,
Expand Down
9 changes: 9 additions & 0 deletions server/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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,
}
Expand Down
1 change: 1 addition & 0 deletions server/rpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ var Config = struct {
Senders model.SenderService
Secrets model.SecretService
Registries model.RegistryService
Environ model.EnvironService
}
Storage struct {
// Users model.UserStore
Expand Down

0 comments on commit ec9171c

Please sign in to comment.