grim/convey

Merge the redux branch into default.

2021-12-20, Gary Kramlich
6b1dbda836d9
Merge the redux branch into default.

This officials abandons the 0.14.0 release and moves right on to 0.15.0 which
includes replacing docker with podman and simplifying many things.
package podman
import (
log "github.com/sirupsen/logrus"
"keep.imfreedom.org/grim/convey/environment"
"keep.imfreedom.org/grim/convey/exec"
"keep.imfreedom.org/grim/convey/runtime"
"keep.imfreedom.org/grim/convey/tasks"
"keep.imfreedom.org/grim/convey/yaml"
)
type Push struct {
Tags yaml.StringOrSlice `yaml:"tags"`
}
func (p *Push) Execute(name string, logger *log.Entry, stageEnv environment.Environment, rt *runtime.Runtime) error {
env := stageEnv.Copy().Merge(rt.Environment)
tags := env.Expandv(p.Tags)
for _, tag := range tags {
generator := exec.NewGenerator(
"podman",
"push",
tag,
)
err := exec.Run(name, generator.Command(), rt.Timeout)
if err != nil {
return err
}
}
return nil
}
func (p *Push) New() tasks.Task {
return &Push{}
}
func (p *Push) Valid() error {
if len(p.Tags) == 0 {
return ErrNoTags
}
return nil
}
func (p *Push) Deprecated() error {
return nil
}