Skip to content
This repository has been archived by the owner on Aug 9, 2021. It is now read-only.

Commit

Permalink
Merge 28f5936 into 6c6386f
Browse files Browse the repository at this point in the history
  • Loading branch information
AnalogJ committed Oct 7, 2018
2 parents 6c6386f + 28f5936 commit bb0b9d0
Show file tree
Hide file tree
Showing 11 changed files with 65 additions and 28 deletions.
20 changes: 15 additions & 5 deletions pkg/engine/engine_base.go
Expand Up @@ -107,17 +107,27 @@ func (e *engineBase) ExecuteCmdList(configKey string, workingDir string, environ

if cmd != "" {
//code formatter
if terr := utils.BashCmdExec(cmd, workingDir, environ, logPrefix); terr != nil {
return errors.EngineTestRunnerError(fmt.Sprintf(errorTemplate, cmd))
cmdPopulated, aerr := utils.PopulateTemplate(cmd, e.PipelineData)
if aerr != nil {
return aerr
}

if terr := utils.BashCmdExec(cmdPopulated, workingDir, environ, logPrefix); terr != nil {
return errors.EngineTestRunnerError(fmt.Sprintf(errorTemplate, cmdPopulated))
}
} else {
cmdList := e.Config.GetStringSlice(configKey)
if cmdList == nil {
return nil
}
for i := range cmdList {
if terr := utils.BashCmdExec(cmdList[i], workingDir, environ, logPrefix); terr != nil {
return errors.EngineTestRunnerError(fmt.Sprintf(errorTemplate, cmdList[i]))
for _, cmd := range cmdList {
cmdPopulated, aerr := utils.PopulateTemplate(cmd, e.PipelineData)
if aerr != nil {
return aerr
}

if terr := utils.BashCmdExec(cmdPopulated, workingDir, environ, logPrefix); terr != nil {
return errors.EngineTestRunnerError(fmt.Sprintf(errorTemplate, cmdPopulated))
}
}
}
Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_chef.go
Expand Up @@ -155,6 +155,7 @@ func (g *engineChef) populateNextMetadata() error {

g.NextMetadata.Version = nextVersion
g.NextMetadata.Name = g.CurrentMetadata.Name
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_generic.go
Expand Up @@ -117,6 +117,7 @@ func (g *engineGeneric) populateNextMetadata() error {
}

g.NextMetadata.Version = nextVersion
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_golang.go
Expand Up @@ -257,6 +257,7 @@ func (g *engineGolang) populateNextMetadata() error {
}

g.NextMetadata.Version = nextVersion
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_node.go
Expand Up @@ -139,6 +139,7 @@ func (g *engineNode) populateNextMetadata() error {

g.NextMetadata.Version = nextVersion
g.NextMetadata.Name = g.CurrentMetadata.Name
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_python.go
Expand Up @@ -190,6 +190,7 @@ func (g *enginePython) populateNextMetadata() error {
}

g.NextMetadata.Version = nextVersion
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
1 change: 1 addition & 0 deletions pkg/engine/engine_ruby.go
Expand Up @@ -207,6 +207,7 @@ func (g *engineRuby) populateNextMetadata() error {

g.NextMetadata.Version = nextVersion
g.NextMetadata.Name = g.CurrentMetadata.Name
g.PipelineData.ReleaseVersion = g.NextMetadata.Version
return nil
}

Expand Down
9 changes: 7 additions & 2 deletions pkg/pipeline.go
Expand Up @@ -524,8 +524,13 @@ func (p *Pipeline) RunHook(hookKey string) error {
if hookSteps == nil {
return nil
}
for i := range hookSteps {
if err := utils.BashCmdExec(hookSteps[i], p.Data.GitLocalPath, nil, fmt.Sprintf("%s.%s", hookKey, i)); err != nil {
for i, cmd := range hookSteps {
cmdPopulated, aerr := utils.PopulateTemplate(cmd, p.Data)
if aerr != nil {
return aerr
}

if err := utils.BashCmdExec(cmdPopulated, p.Data.GitLocalPath, nil, fmt.Sprintf("%s.%s", hookKey, i)); err != nil {
return err
}
}
Expand Down
18 changes: 8 additions & 10 deletions pkg/scm/scm_bitbucket.go
Expand Up @@ -16,8 +16,6 @@ import (
"capsulecd/pkg/utils"
"strconv"
"path"
"bytes"
"text/template"
)

type scmBitbucket struct {
Expand Down Expand Up @@ -376,22 +374,22 @@ func (b *scmBitbucket) PublishAssets(releaseData interface{}) error {

for _, assetData := range b.PipelineData.ReleaseAssets {
// handle templated destination artifact names
artifactNameTmpl, err := template.New("artifactName").Parse(assetData.ArtifactName)
if err != nil {
return err
artifactNamePopulated, aerr := utils.PopulateTemplate(assetData.ArtifactName, b.PipelineData)
if aerr != nil {
return aerr
}

var artifactNamePopulated bytes.Buffer
if err := artifactNameTmpl.Execute(&artifactNamePopulated, b.PipelineData); err != nil {
return err
localPathPopulated, lerr := utils.PopulateTemplate(assetData.LocalPath, b.PipelineData)
if lerr != nil {
return lerr
}

b.publishAsset(
b.Client,
parts[0],
parts[1],
artifactNamePopulated.String(),
path.Join(b.PipelineData.GitLocalPath, assetData.LocalPath),
artifactNamePopulated,
path.Join(b.PipelineData.GitLocalPath, localPathPopulated),
5)
}
return nil
Expand Down
18 changes: 8 additions & 10 deletions pkg/scm/scm_github.go
Expand Up @@ -18,8 +18,6 @@ import (
"strconv"
"strings"
"time"
"text/template"
"bytes"
)

type scmGithub struct {
Expand Down Expand Up @@ -310,23 +308,23 @@ func (g *scmGithub) PublishAssets(releaseData interface{}) error {

for _, assetData := range g.PipelineData.ReleaseAssets {
// handle templated destination artifact names
artifactNameTmpl, err := template.New("artifactName").Parse(assetData.ArtifactName)
if err != nil {
return err
artifactNamePopulated, aerr := utils.PopulateTemplate(assetData.ArtifactName, g.PipelineData)
if aerr != nil {
return aerr
}

var artifactNamePopulated bytes.Buffer
if err := artifactNameTmpl.Execute(&artifactNamePopulated, g.PipelineData); err != nil {
return err
localPathPopulated, lerr := utils.PopulateTemplate(assetData.LocalPath, g.PipelineData)
if lerr != nil {
return lerr
}

g.publishGithubAsset(
g.Client,
ctx,
parts[0],
parts[1],
artifactNamePopulated.String(),
path.Join(g.PipelineData.GitLocalPath, assetData.LocalPath),
artifactNamePopulated,
path.Join(g.PipelineData.GitLocalPath, localPathPopulated),
releaseId,
5)
}
Expand Down
22 changes: 21 additions & 1 deletion pkg/utils/string.go
@@ -1,6 +1,26 @@
package utils

import "strings"
import (
"strings"
"bytes"
"text/template"
)

func PopulateTemplate(tmplString string, data interface{}) (string, error){
// handle templated destination artifact names
tmpl, err := template.New("tmplString").Parse(tmplString)
if err != nil {
return "", err
}

var populatedString bytes.Buffer
if err := tmpl.Execute(&populatedString, data); err != nil {
return "", err
}
return populatedString.String(), nil
}



func SnakeCaseToCamelCase(inputUnderScoreStr string) (camelCase string) {
//snake_case to camelCase
Expand Down

0 comments on commit bb0b9d0

Please sign in to comment.