1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-11-24 08:02:18 +02:00

inject globals

This commit is contained in:
Brad Rydzewski 2017-06-26 15:27:53 -04:00
parent af9ef41e58
commit ec9171cead
4 changed files with 29 additions and 23 deletions

View File

@ -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,
}
}

View File

@ -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,

View File

@ -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,
}

View File

@ -35,6 +35,7 @@ var Config = struct {
Senders model.SenderService
Secrets model.SecretService
Registries model.RegistryService
Environ model.EnvironService
}
Storage struct {
// Users model.UserStore