1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-04-11 11:42:15 +02:00

feat: remove docker images from changelog (#2708)

refs #2707

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos Alexandro Becker 2021-11-30 21:13:35 -03:00 committed by GitHub
parent 6a30b0e55d
commit 30ff48a5a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 3 additions and 103 deletions

View File

@ -2,55 +2,26 @@ package release
import (
"bytes"
"strings"
"text/template"
"github.com/goreleaser/goreleaser/internal/artifact"
"github.com/goreleaser/goreleaser/internal/tmpl"
"github.com/goreleaser/goreleaser/pkg/context"
)
const bodyTemplateText = `{{ with .Header }}{{ . }}{{ "\n" }}{{ end }}
{{- .ReleaseNotes }}
{{- with .DockerImages }}
## Docker images
{{ range $element := . }}
- ` + "`docker pull {{ . -}}`" + `
{{- end -}}
{{- end }}
{{- with .Footer }}{{ "\n" }}{{ . }}{{ end }}
`
func isLatest(img string) bool {
return strings.HasSuffix(img, ":latest") || !strings.Contains(img, ":")
}
func describeBody(ctx *context.Context) (bytes.Buffer, error) {
var out bytes.Buffer
// nolint:prealloc
var dockers []string
for _, a := range ctx.Artifacts.Filter(artifact.ByType(artifact.DockerManifest)).List() {
if isLatest(a.Name) {
continue
}
dockers = append(dockers, a.Name)
}
if len(dockers) == 0 {
for _, a := range ctx.Artifacts.Filter(artifact.ByType(artifact.DockerImage)).List() {
if isLatest(a.Name) {
continue
}
dockers = append(dockers, a.Name)
}
}
t := tmpl.New(ctx)
header, err := tmpl.New(ctx).Apply(ctx.Config.Release.Header)
header, err := t.Apply(ctx.Config.Release.Header)
if err != nil {
return out, err
}
footer, err := tmpl.New(ctx).Apply(ctx.Config.Release.Footer)
footer, err := t.Apply(ctx.Config.Release.Footer)
if err != nil {
return out, err
}
@ -60,12 +31,10 @@ func describeBody(ctx *context.Context) (bytes.Buffer, error) {
Header string
Footer string
ReleaseNotes string
DockerImages []string
}{
Header: header,
Footer: footer,
ReleaseNotes: ctx.ReleaseNotes,
DockerImages: dockers,
})
return out, err
}

View File

@ -3,7 +3,6 @@ package release
import (
"testing"
"github.com/goreleaser/goreleaser/internal/artifact"
"github.com/goreleaser/goreleaser/internal/golden"
"github.com/goreleaser/goreleaser/pkg/config"
"github.com/goreleaser/goreleaser/pkg/context"
@ -14,61 +13,6 @@ func TestDescribeBody(t *testing.T) {
changelog := "feature1: description\nfeature2: other description"
ctx := context.New(config.Project{})
ctx.ReleaseNotes = changelog
for _, d := range []string{
"goreleaser/goreleaser:0.40.0",
"goreleaser/goreleaser:latest",
"goreleaser/goreleaser",
"goreleaser/godownloader:v0.1.0",
} {
ctx.Artifacts.Add(&artifact.Artifact{
Name: d,
Type: artifact.DockerImage,
})
}
out, err := describeBody(ctx)
require.NoError(t, err)
golden.RequireEqual(t, out.Bytes())
}
func TestDescribeBodyWithDockerManifest(t *testing.T) {
changelog := "feature1: description\nfeature2: other description"
ctx := context.New(config.Project{})
ctx.ReleaseNotes = changelog
for _, d := range []string{
"goreleaser/goreleaser:0.40.0",
"goreleaser/goreleaser:latest",
"goreleaser/godownloader:v0.1.0",
} {
ctx.Artifacts.Add(&artifact.Artifact{
Name: d,
Type: artifact.DockerManifest,
})
}
for _, d := range []string{
"goreleaser/goreleaser:0.40.0-amd64",
"goreleaser/goreleaser:latest-amd64",
"goreleaser/godownloader:v0.1.0-amd64",
"goreleaser/goreleaser:0.40.0-arm64",
"goreleaser/goreleaser:latest-arm64",
"goreleaser/godownloader:v0.1.0-arm64",
} {
ctx.Artifacts.Add(&artifact.Artifact{
Name: d,
Type: artifact.DockerImage,
})
}
out, err := describeBody(ctx)
require.NoError(t, err)
golden.RequireEqual(t, out.Bytes())
}
func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) {
changelog := "feature1: description\nfeature2: other description"
ctx := &context.Context{
ReleaseNotes: changelog,
}
out, err := describeBody(ctx)
require.NoError(t, err)
@ -95,10 +39,6 @@ func TestDescribeBodyWithHeaderAndFooter(t *testing.T) {
})
ctx.ReleaseNotes = changelog
ctx.Git = context.GitInfo{CurrentTag: "v1.0"}
ctx.Artifacts.Add(&artifact.Artifact{
Name: "goreleaser/goreleaser:v1.2.3",
Type: artifact.DockerImage,
})
out, err := describeBody(ctx)
require.NoError(t, err)

View File

@ -1,7 +1,2 @@
feature1: description
feature2: other description
## Docker images
- `docker pull goreleaser/goreleaser:0.40.0`
- `docker pull goreleaser/godownloader:v0.1.0`

View File

@ -4,10 +4,6 @@ something
feature1: description
feature2: other description
## Docker images
- `docker pull goreleaser/goreleaser:v1.2.3`
---
Get images at docker.io/foo/bar:v1.0