add defualt tag suffix
This commit is contained in:
parent
6f5d6e2481
commit
88ae029815
@ -131,6 +131,11 @@ func main() {
|
|||||||
Usage: "default build tags",
|
Usage: "default build tags",
|
||||||
EnvVar: "PLUGIN_DEFAULT_TAGS,PLUGIN_AUTO_TAG",
|
EnvVar: "PLUGIN_DEFAULT_TAGS,PLUGIN_AUTO_TAG",
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tags.suffix",
|
||||||
|
Usage: "default build tags with suffix",
|
||||||
|
EnvVar: "PLUGIN_DEFAULT_SUFFIX,PLUGIN_AUTO_TAG_SUFFIX",
|
||||||
|
},
|
||||||
cli.StringSliceFlag{
|
cli.StringSliceFlag{
|
||||||
Name: "args",
|
Name: "args",
|
||||||
Usage: "build args",
|
Usage: "build args",
|
||||||
@ -235,8 +240,9 @@ func run(c *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if c.Bool("tags.auto") {
|
if c.Bool("tags.auto") {
|
||||||
plugin.Build.Tags = docker.DefaultTags(
|
plugin.Build.Tags = docker.DefaultTagSuffix(
|
||||||
c.String("commit.ref"),
|
c.String("commit.ref"),
|
||||||
|
c.String("tags.suffix"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
tags.go
19
tags.go
@ -7,7 +7,24 @@ import (
|
|||||||
"github.com/coreos/go-semver/semver"
|
"github.com/coreos/go-semver/semver"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Default tags returns a set of default suggested tags based on
|
// DefaultTagSuffix returns a set of default suggested tags
|
||||||
|
// based on the commit ref with an attached suffix.
|
||||||
|
func DefaultTagSuffix(ref, suffix string) []string {
|
||||||
|
tags := DefaultTags(ref)
|
||||||
|
if len(suffix) == 0 {
|
||||||
|
return tags
|
||||||
|
}
|
||||||
|
for i, tag := range tags {
|
||||||
|
if tag == "latest" {
|
||||||
|
tags[i] = suffix
|
||||||
|
} else {
|
||||||
|
tags[i] = fmt.Sprintf("%s-%s", tag, suffix)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tags
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultTags returns a set of default suggested tags based on
|
||||||
// the commit ref.
|
// the commit ref.
|
||||||
func DefaultTags(ref string) []string {
|
func DefaultTags(ref string) []string {
|
||||||
if !strings.HasPrefix(ref, "refs/tags/") {
|
if !strings.HasPrefix(ref, "refs/tags/") {
|
||||||
|
57
tags_test.go
57
tags_test.go
@ -23,7 +23,7 @@ func Test_stripTagPrefix(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_defaultTags(t *testing.T) {
|
func TestDefaultTags(t *testing.T) {
|
||||||
var tests = []struct {
|
var tests = []struct {
|
||||||
Before string
|
Before string
|
||||||
After []string
|
After []string
|
||||||
@ -47,3 +47,58 @@ func Test_defaultTags(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDefaultTagSuffix(t *testing.T) {
|
||||||
|
var tests = []struct {
|
||||||
|
Before string
|
||||||
|
Suffix string
|
||||||
|
After []string
|
||||||
|
}{
|
||||||
|
// without suffix
|
||||||
|
{
|
||||||
|
After: []string{"latest"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Before: "refs/tags/v1.0.0",
|
||||||
|
After: []string{
|
||||||
|
"1",
|
||||||
|
"1.0",
|
||||||
|
"1.0.0",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// with suffix
|
||||||
|
{
|
||||||
|
Suffix: "linux-amd64",
|
||||||
|
After: []string{"linux-amd64"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Before: "refs/tags/v1.0.0",
|
||||||
|
Suffix: "linux-amd64",
|
||||||
|
After: []string{
|
||||||
|
"1-linux-amd64",
|
||||||
|
"1.0-linux-amd64",
|
||||||
|
"1.0.0-linux-amd64",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Suffix: "nanoserver",
|
||||||
|
After: []string{"nanoserver"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Before: "refs/tags/v1.9.2",
|
||||||
|
Suffix: "nanoserver",
|
||||||
|
After: []string{
|
||||||
|
"1-nanoserver",
|
||||||
|
"1.9-nanoserver",
|
||||||
|
"1.9.2-nanoserver",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
got, want := DefaultTagSuffix(test.Before, test.Suffix), test.After
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("Got tag %v, want %v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user