Compare commits

...

6 commits
main ... fix-49

Author SHA1 Message Date
Patrick Schratz 0d6889608b Merge branch 'main' into fix-49 2024-02-02 21:06:34 +00:00
pat-s 16ee7a3067
test 2024-01-27 16:31:10 +01:00
pat-s f3ac89b417
allow empty tags 2024-01-27 16:12:53 +01:00
pat-s 02649d9e3e
test 2024-01-27 16:08:20 +01:00
pat-s 726ec12d30
test 2024-01-27 16:01:36 +01:00
pat-s b51341b99d
allow default_tag to be empty 2024-01-27 15:56:35 +01:00
4 changed files with 26 additions and 9 deletions

View file

@ -7,7 +7,8 @@ when:
variables:
- &golang "golang:1.21"
- &build_plugin "woodpeckerci/plugin-docker-buildx:3.0.0"
# - &build_plugin "woodpeckerci/plugin-docker-buildx:3.0.0"
- &build_plugin "woodpeckerci/plugin-docker-buildx:pull_132"
- base_settings: &base_buildx_settings
platforms: "linux/amd64,linux/arm64"
dockerfile: Dockerfile.multiarch
@ -77,9 +78,13 @@ steps:
publish_pr_image:
image: *build_plugin
depends_on: test
pull: true
settings:
auto_tag: true
default_tag: ""
dry_run: true
<<: *base_buildx_settings
tag: pull_${CI_COMMIT_PULL_REQUEST}
# tag: pull_${CI_COMMIT_PULL_REQUEST}
logins: *login_setting
when:
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'

View file

@ -184,11 +184,22 @@ func (p *Plugin) Validate() error {
p.settings.Build.Ref,
p.settings.Build.Branch,
) {
tag, err := DefaultTagSuffix(
p.settings.Build.Ref,
p.settings.Build.TagsDefaultName,
p.settings.Build.TagsSuffix,
)
var tag []string
var err error
if p.settings.Build.TagsSuffix != "" {
tag, err = DefaultTagSuffix(
p.settings.Build.Ref,
p.settings.Build.TagsDefaultName,
p.settings.Build.TagsSuffix,
)
} else {
tag, err = DefaultTagSuffix(
p.settings.Build.Ref,
p.settings.Build.TagsSuffix,
"",
)
}
if err != nil {
logrus.Printf("cannot build docker image for %s, invalid semantic version", p.settings.Build.Ref)
return err

View file

@ -110,6 +110,6 @@ func stripTagPrefix(ref string) string {
}
func isSingleTag(tag string) bool {
// currently only filtering for seperators, this could be improoved...
return !regexp.MustCompile(`[,\s]+`).MatchString(tag) && len(tag) > 0 && len(tag) <= 128
// currently only filtering for separators, this could be improved...
return tag == "" || (!regexp.MustCompile(`[,\s]+`).MatchString(tag) && len(tag) <= 128)
}

View file

@ -299,6 +299,7 @@ func Test_isSingleTag(t *testing.T) {
{"_wierd.but-ok1", true},
{"latest ", false},
{"latest,next", false},
{"", true}, // important to allow omitting 'latest' tag when using auto_tag: true
// more tests to be added, once the validation is more powerful
}