1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-04-25 12:24:44 +02:00

52 lines
1.2 KiB
Go
Raw Normal View History

2017-04-19 16:59:26 -03:00
package release
import (
"bytes"
"os/exec"
2017-07-04 09:28:26 -03:00
"text/template"
2017-04-19 16:59:26 -03:00
"github.com/goreleaser/goreleaser/context"
2017-12-17 23:11:17 -02:00
"github.com/goreleaser/goreleaser/internal/artifact"
2017-04-19 16:59:26 -03:00
)
2017-04-19 17:05:10 -03:00
const bodyTemplate = `{{ .ReleaseNotes }}
2017-04-19 16:59:26 -03:00
{{- if .DockerImages }}
## Docker images
{{ range $element := .DockerImages }}
- ` + "`docker pull {{ . -}}`" + `
{{- end -}}
{{- end }}
2017-04-19 16:59:26 -03:00
---
2017-07-02 17:40:21 -03:00
Automated with [GoReleaser](https://github.com/goreleaser)
Built with {{ .GoVersion }}`
2017-04-19 16:59:26 -03:00
2017-04-19 17:12:12 -03:00
func describeBody(ctx *context.Context) (bytes.Buffer, error) {
/* #nosec */
2017-12-29 17:07:06 -02:00
bts, err := exec.CommandContext(ctx, "go", "version").CombinedOutput()
2017-04-19 16:59:26 -03:00
if err != nil {
return bytes.Buffer{}, err
2017-04-19 16:59:26 -03:00
}
return describeBodyVersion(ctx, string(bts))
}
func describeBodyVersion(ctx *context.Context, version string) (bytes.Buffer, error) {
var out bytes.Buffer
2017-04-19 16:59:26 -03:00
var template = template.Must(template.New("release").Parse(bodyTemplate))
2017-12-17 23:11:17 -02:00
var dockers []string
for _, a := range ctx.Artifacts.Filter(artifact.ByType(artifact.DockerImage)).List() {
dockers = append(dockers, a.Name)
}
err := template.Execute(&out, struct {
2017-04-19 17:05:10 -03:00
ReleaseNotes, GoVersion string
DockerImages []string
2017-04-19 16:59:26 -03:00
}{
2017-04-19 17:05:10 -03:00
ReleaseNotes: ctx.ReleaseNotes,
GoVersion: version,
2017-12-17 23:11:17 -02:00
DockerImages: dockers,
2017-04-19 16:59:26 -03:00
})
return out, err
}