mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-11-26 20:01:02 +00:00
Adding the ability to label containers that are launched using
labels: something: value something2: value2
This commit is contained in:
parent
fe750c751a
commit
aaa702dab6
4 changed files with 24 additions and 0 deletions
|
@ -138,6 +138,7 @@ func (a *Agent) prep(w *queue.Work) (*yaml.Config, error) {
|
|||
}
|
||||
|
||||
transform.Clone(conf, w.Repo.Kind)
|
||||
transform.Labels(conf)
|
||||
transform.Environ(conf, envs)
|
||||
transform.DefaultFilter(conf)
|
||||
if w.BuildLast != nil {
|
||||
|
|
|
@ -14,6 +14,7 @@ func toContainerConfig(c *yaml.Container) *dockerclient.ContainerConfig {
|
|||
config := &dockerclient.ContainerConfig{
|
||||
Image: c.Image,
|
||||
Env: toEnvironmentSlice(c.Environment),
|
||||
Labels: c.Labels,
|
||||
Cmd: c.Command,
|
||||
Entrypoint: c.Entrypoint,
|
||||
WorkingDir: c.WorkingDir,
|
||||
|
|
|
@ -27,6 +27,7 @@ type Container struct {
|
|||
Privileged bool
|
||||
WorkingDir string
|
||||
Environment map[string]string
|
||||
Labels map[string]string
|
||||
Entrypoint []string
|
||||
Command []string
|
||||
Commands []string
|
||||
|
@ -61,6 +62,7 @@ type container struct {
|
|||
Pull bool `yaml:"pull"`
|
||||
Privileged bool `yaml:"privileged"`
|
||||
Environment types.MapEqualSlice `yaml:"environment"`
|
||||
Labels types.MapEqualSlice `yaml:"labels"`
|
||||
Entrypoint types.StringOrSlice `yaml:"entrypoint"`
|
||||
Command types.StringOrSlice `yaml:"command"`
|
||||
Commands types.StringOrSlice `yaml:"commands"`
|
||||
|
@ -129,6 +131,7 @@ func (c *containerList) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|||
Pull: cc.Pull,
|
||||
Privileged: cc.Privileged,
|
||||
Environment: cc.Environment.Map(),
|
||||
Labels: cc.Labels.Map(),
|
||||
Entrypoint: cc.Entrypoint.Slice(),
|
||||
Command: cc.Command.Slice(),
|
||||
Commands: cc.Commands.Slice(),
|
||||
|
|
19
yaml/transform/labels.go
Normal file
19
yaml/transform/labels.go
Normal file
|
@ -0,0 +1,19 @@
|
|||
package transform
|
||||
|
||||
import (
|
||||
"github.com/drone/drone/yaml"
|
||||
)
|
||||
|
||||
// Labels transforms the steps in the Yaml pipeline to include a Labels if it doens't exist
|
||||
func Labels(c *yaml.Config) error {
|
||||
var images []*yaml.Container
|
||||
images = append(images, c.Pipeline...)
|
||||
images = append(images, c.Services...)
|
||||
|
||||
for _, p := range images {
|
||||
if p.Labels == nil {
|
||||
p.Labels = map[string]string{}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
Loading…
Reference in a new issue