github.com/szyn/goreleaser@v0.76.1-0.20180517112710-333da09a1297/pipeline/release/body.go (about)

     1  package release
     2  
     3  import (
     4  	"bytes"
     5  	"text/template"
     6  
     7  	"github.com/goreleaser/goreleaser/context"
     8  	"github.com/goreleaser/goreleaser/internal/artifact"
     9  )
    10  
    11  const bodyTemplateText = `{{ .ReleaseNotes }}
    12  
    13  {{- with .DockerImages }}
    14  
    15  ## Docker images
    16  {{ range $element := . }}
    17  - ` + "`docker pull {{ . -}}`" + `
    18  {{- end -}}
    19  {{- end }}
    20  `
    21  
    22  var bodyTemplate *template.Template
    23  
    24  func init() {
    25  	bodyTemplate = template.Must(template.New("release").Parse(bodyTemplateText))
    26  }
    27  
    28  func describeBody(ctx *context.Context) (bytes.Buffer, error) {
    29  	var out bytes.Buffer
    30  	var dockers []string
    31  	for _, a := range ctx.Artifacts.Filter(artifact.ByType(artifact.DockerImage)).List() {
    32  		dockers = append(dockers, a.Name)
    33  	}
    34  	err := bodyTemplate.Execute(&out, struct {
    35  		ReleaseNotes string
    36  		DockerImages []string
    37  	}{
    38  		ReleaseNotes: ctx.ReleaseNotes,
    39  		DockerImages: dockers,
    40  	})
    41  	return out, err
    42  }