--- a/color/color.go Sun Feb 18 23:52:02 2018 -0600
+++ b/color/color.go Mon Feb 19 00:14:29 2018 -0600
@@ -34,7 +34,11 @@
- h.Write([]byte(identifier))
+ _, err := h.Write([]byte(identifier)) c := int(h.Sum32() % uint32(len(colorList)))
colorMap[identifier] = colorList[c]
--- a/consts/consts.go Sun Feb 18 23:52:02 2018 -0600
+++ b/consts/consts.go Mon Feb 19 00:14:29 2018 -0600
@@ -17,5 +17,6 @@
+ // Version is the current version of convey --- a/convey.yml Sun Feb 18 23:52:02 2018 -0600
+++ b/convey.yml Mon Feb 19 00:14:29 2018 -0600
@@ -29,9 +29,11 @@
- image: convey/go-vet:latest
+ image: convey/gometalinter:latest + - GOMETALINTER_OPTIONS=-Dinterfacer -Dvarcheck image: convey/go-build:latest
@@ -128,6 +130,12 @@
tag: convey/go-vet:latest
+ build-image-gometalinter: + dockerfile: images/gometalinter/Dockerfile + tag: convey/gometalinter + - images/gometalinter/run.sh build-image-rust-build-linux:
dockerfile: images/rust-build-linux/Dockerfile
@@ -165,7 +173,7 @@
@@ -203,11 +211,12 @@
+ - build-image-go-build-alpine + - build-image-gometalinter + - build-image-rust-build-linux - build-image-workspace-tools
- - build-image-go-build-alpine
- - build-image-rust-build-linux
--- a/intrinsic/clean.go Sun Feb 18 23:52:02 2018 -0600
+++ b/intrinsic/clean.go Mon Feb 19 00:14:29 2018 -0600
@@ -100,7 +100,10 @@
- logger.Debugf("removing \"%v\", expanded from \"%v\"", sanitized, pattern)
+ nErr := logger.Debugf("removing \"%v\", expanded from \"%v\"", sanitized, pattern) + fmt.Printf("error reporting error: %s\n", nErr) if err := os.RemoveAll(sanitized); err != nil {
--- a/kubectl/apply.go Sun Feb 18 23:52:02 2018 -0600
+++ b/kubectl/apply.go Mon Feb 19 00:14:29 2018 -0600
@@ -23,8 +23,10 @@
"bitbucket.org/rw_grim/convey/tasks"
+// Apply is a task for calling `kubectl apply`. +// Execute runs `kubectl apply` with the given arguments. func (a *Apply) Execute(name string, logger *gomol.LogAdapter, env []string, st *state.State) error {
--- a/kubectl/command.go Sun Feb 18 23:52:02 2018 -0600
+++ b/kubectl/command.go Mon Feb 19 00:14:29 2018 -0600
@@ -14,7 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-// Package intrinsic contains the intrinsic commands
@@ -29,6 +28,7 @@
"bitbucket.org/rw_grim/convey/yaml"
+// CRUDCommand represents a call to a `kubectl` command to manage deployments. type CRUDCommand struct {
Context string `yaml:"context"`
Namespace string `yaml:"namespace"`
@@ -36,6 +36,7 @@
Selector string `yaml:"selector"`
+// Execute runs the given `kubectl` command with the given arguments. func (c *CRUDCommand) Execute(name, action string, logger *gomol.LogAdapter, env []string, st *state.State) error {
fullEnv := environment.Merge(env, st.GetEnv())
--- a/kubectl/create.go Sun Feb 18 23:52:02 2018 -0600
+++ b/kubectl/create.go Mon Feb 19 00:14:29 2018 -0600
@@ -23,8 +23,10 @@
"bitbucket.org/rw_grim/convey/tasks"
+// Create is a task for calling `kubectl create`. +// Execute runs `kubectl create` with the given arguments. func (c *Create) Execute(name string, logger *gomol.LogAdapter, env []string, st *state.State) error {
--- a/kubectl/delete.go Sun Feb 18 23:52:02 2018 -0600
+++ b/kubectl/delete.go Mon Feb 19 00:14:29 2018 -0600
@@ -23,8 +23,10 @@
"bitbucket.org/rw_grim/convey/tasks"
+// Delete is a task for calling `kubectl delete`. +// Execute runs `kubectl delete` with the given arguments. func (d *Delete) Execute(name string, logger *gomol.LogAdapter, env []string, st *state.State) error {
--- a/kubectl/kubectl.go Sun Feb 18 23:52:02 2018 -0600
+++ b/kubectl/kubectl.go Mon Feb 19 00:14:29 2018 -0600
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-// Package intrinsic contains the intrinsic commands
+// Package kubectl contains the tasks for interacting with kubernetes via --- a/runners/convey.go Sun Feb 18 23:52:02 2018 -0600
+++ b/runners/convey.go Mon Feb 19 00:14:29 2018 -0600
@@ -17,6 +17,8 @@
"bitbucket.org/rw_grim/convey/config"
"bitbucket.org/rw_grim/convey/logging"
"bitbucket.org/rw_grim/convey/state"
@@ -33,17 +35,26 @@
if plan, found := cfg.Plans[planName]; found {
- logger.Errorf("%s", err)
+ if nErr := logger.Errorf("%s", err); nErr != nil { + fmt.Printf("error report error: %s\n", nErr) err = plan.Execute(planName, cfg.Tasks, cfg.Environment, st)
- logger.Errorf("%s", err)
+ if nErr := logger.Errorf("%s", err); nErr != nil { + fmt.Printf("error reporting error: %s\n", nErr) - logger.Fatalf("plan %s not found", planName)
+ if nErr := logger.Fatalf("plan %s not found", planName); nErr != nil { + fmt.Printf("error reporting error: %s\n", nErr) --- a/runners/graphviz.go Sun Feb 18 23:52:02 2018 -0600
+++ b/runners/graphviz.go Mon Feb 19 00:14:29 2018 -0600
@@ -157,7 +157,7 @@
func (g Graphviz) plan(name string, plan plans.Plan) graphvizPlan {
- graphvizPlan := graphvizPlan{
+ gvizPlan := graphvizPlan{ Normalized: normalize("plan", name),
@@ -165,7 +165,7 @@
for idx, stage := range plan.Stages {
- graphvizStage := graphvizStage{
+ gvizStage := graphvizStage{ Normalized: normalize("stage", stage.Name),
@@ -175,20 +175,20 @@
for _, task := range stage.Tasks {
- graphvizStage.Tasks = append(graphvizStage.Tasks, normalize("task", task))
+ gvizStage.Tasks = append(gvizStage.Tasks, normalize("task", task)) - graphvizPlan.Stages = append(graphvizPlan.Stages, graphvizStage)
+ gvizPlan.Stages = append(gvizPlan.Stages, gvizStage) // if this always runs, if it's not the first add it to the previous stages' fallthroughs
if stage.Always && idx > 0 {
for i := 0; i < idx; i++ {
- graphvizPlan.Stages[i].FallThroughs = append(graphvizPlan.Stages[idx-1].FallThroughs, graphvizStage)
+ gvizPlan.Stages[i].FallThroughs = append(gvizPlan.Stages[idx-1].FallThroughs, gvizStage)
func (g *Graphviz) getPlans(cfg *config.Config) []graphvizPlan {
@@ -214,7 +214,9 @@
tmpl, err := template.New("graphviz").Parse(graphvizTemplate)
- logger.Fatalf("error: %s", err)
+ if nErr := logger.Fatalf("error: %s", err); nErr != nil { + fmt.Printf("error reporting error: %s\n", nErr) @@ -223,7 +225,9 @@
output := new(bytes.Buffer)
err = tmpl.Execute(output, params)
- logger.Fatalf("error: %s", err)
+ if nErr := logger.Fatalf("error: %s", err); nErr != nil { + fmt.Printf("error reporting error: %s\n", nErr) --- a/runners/listplans.go Sun Feb 18 23:52:02 2018 -0600
+++ b/runners/listplans.go Mon Feb 19 00:14:29 2018 -0600
@@ -35,7 +35,7 @@
for _, stage := range plan.Stages {
- if stage.Enabled == false {
--- a/script/script.go Sun Feb 18 23:52:02 2018 -0600
+++ b/script/script.go Mon Feb 19 00:14:29 2018 -0600
@@ -26,6 +26,8 @@
"bitbucket.org/rw_grim/convey/tasks"
+// ParseFunc defines a function that can parse a shell command into a convey type ParseFunc func(argv []string) (tasks.Task, error)
--- a/yaml/yaml.go Sun Feb 18 23:52:02 2018 -0600
+++ b/yaml/yaml.go Mon Feb 19 00:14:29 2018 -0600
@@ -42,7 +42,7 @@
type rawStringOrSlice StringOrSlice
raw := rawStringOrSlice{}
- if err := unmarshal(&raw); err != nil {
+ if err = unmarshal(&raw); err != nil {