mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-02-11 13:38:41 +02:00
fix: ensure changelog ends on a newline (#1919)
This commit is contained in:
parent
56f34935d2
commit
761c56a805
@ -104,7 +104,11 @@ func (Pipe) Run(ctx *context.Context) error {
|
|||||||
if len(ctx.ReleaseFooter) > 0 {
|
if len(ctx.ReleaseFooter) > 0 {
|
||||||
changelogElements = append(changelogElements, ctx.ReleaseFooter)
|
changelogElements = append(changelogElements, ctx.ReleaseFooter)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.ReleaseNotes = strings.Join(changelogElements, "\n\n")
|
ctx.ReleaseNotes = strings.Join(changelogElements, "\n\n")
|
||||||
|
if !strings.HasSuffix(ctx.ReleaseNotes, "\n") {
|
||||||
|
ctx.ReleaseNotes += "\n"
|
||||||
|
}
|
||||||
|
|
||||||
var path = filepath.Join(ctx.Config.Dist, "CHANGELOG.md")
|
var path = filepath.Join(ctx.Config.Dist, "CHANGELOG.md")
|
||||||
log.WithField("changelog", path).Info("writing")
|
log.WithField("changelog", path).Info("writing")
|
||||||
|
@ -406,6 +406,7 @@ func TestChangeLogWithReleaseFooter(t *testing.T) {
|
|||||||
require.NoError(t, Pipe{}.Run(ctx))
|
require.NoError(t, Pipe{}.Run(ctx))
|
||||||
require.Contains(t, ctx.ReleaseNotes, "## Changelog")
|
require.Contains(t, ctx.ReleaseNotes, "## Changelog")
|
||||||
require.Contains(t, ctx.ReleaseNotes, "test footer")
|
require.Contains(t, ctx.ReleaseNotes, "test footer")
|
||||||
|
require.Equal(t, rune(ctx.ReleaseNotes[len(ctx.ReleaseNotes)-1]), '\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
|
func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
|
||||||
@ -432,4 +433,30 @@ func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
|
|||||||
require.NoError(t, Pipe{}.Run(ctx))
|
require.NoError(t, Pipe{}.Run(ctx))
|
||||||
require.Contains(t, ctx.ReleaseNotes, "## Changelog")
|
require.Contains(t, ctx.ReleaseNotes, "## Changelog")
|
||||||
require.Contains(t, ctx.ReleaseNotes, "test footer with tag v0.0.1")
|
require.Contains(t, ctx.ReleaseNotes, "test footer with tag v0.0.1")
|
||||||
|
require.Equal(t, rune(ctx.ReleaseNotes[len(ctx.ReleaseNotes)-1]), '\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestChangeLogWithoutReleaseFooter(t *testing.T) {
|
||||||
|
current, err := os.Getwd()
|
||||||
|
require.NoError(t, err)
|
||||||
|
tmpdir, back := testlib.Mktmp(t)
|
||||||
|
defer back()
|
||||||
|
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
|
||||||
|
testlib.GitInit(t)
|
||||||
|
var msgs = []string{
|
||||||
|
"initial commit",
|
||||||
|
"another one",
|
||||||
|
"one more",
|
||||||
|
"and finally this one",
|
||||||
|
}
|
||||||
|
for _, msg := range msgs {
|
||||||
|
testlib.GitCommit(t, msg)
|
||||||
|
}
|
||||||
|
testlib.GitTag(t, "v0.0.1")
|
||||||
|
testlib.GitCheckoutBranch(t, "v0.0.1")
|
||||||
|
var ctx = context.New(config.Project{})
|
||||||
|
ctx.Git.CurrentTag = "v0.0.1"
|
||||||
|
require.NoError(t, Pipe{}.Run(ctx))
|
||||||
|
require.Contains(t, ctx.ReleaseNotes, "## Changelog")
|
||||||
|
require.Equal(t, rune(ctx.ReleaseNotes[len(ctx.ReleaseNotes)-1]), '\n')
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user