From: Bjørn Erik Pedersen Date: Mon, 22 May 2017 13:04:40 +0000 (+0300) Subject: releaser: Add a new step X-Git-Tag: v0.21~2 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=baa414ae;p=brevno-suite%2Fhugo releaser: Add a new step When doing it step-by-step, we need to update the version numbers in its own step. --- diff --git a/releaser/releaser.go b/releaser/releaser.go index 088b52ec..afb5fcdd 100644 --- a/releaser/releaser.go +++ b/releaser/releaser.go @@ -31,7 +31,12 @@ import ( const commitPrefix = "releaser:" type ReleaseHandler struct { - patch int + patch int + + // If set, we do the relases in 3 steps: + // 1: Create and write a draft release notes + // 2: Prepare files for new version. + // 3: Release step int skipPublish bool } @@ -41,13 +46,17 @@ func (r ReleaseHandler) shouldRelease() bool { } func (r ReleaseHandler) shouldContinue() bool { - return r.step == 2 + return r.step == 3 } -func (r ReleaseHandler) shouldPrepare() bool { +func (r ReleaseHandler) shouldPrepareReleasenotes() bool { return r.step < 1 || r.step == 1 } +func (r ReleaseHandler) shouldPrepareVersions() bool { + return r.step < 1 || r.step == 2 +} + func (r ReleaseHandler) calculateVersions(current helpers.HugoVersion) (helpers.HugoVersion, helpers.HugoVersion) { var ( newVersion = current @@ -111,14 +120,14 @@ func (r *ReleaseHandler) Run() error { var gitCommits gitInfos - if r.shouldPrepare() || r.shouldRelease() { + if r.shouldPrepareReleasenotes() || r.shouldRelease() { gitCommits, err = getGitInfos(changeLogFromTag, true) if err != nil { return err } } - if r.shouldPrepare() { + if r.shouldPrepareReleasenotes() { releaseNotesFile, err := writeReleaseNotesToDocsTemp(version, gitCommits) if err != nil { return err @@ -132,17 +141,19 @@ func (r *ReleaseHandler) Run() error { } } - if !r.shouldRelease() { - fmt.Println("Skip release ... Use --state=2 to continue.") - return nil - } + if r.shouldPrepareVersions() { + if err := bumpVersions(newVersion); err != nil { + return err + } - if err := bumpVersions(newVersion); err != nil { - return err + if _, err := git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\n[ci skip]", commitPrefix, newVersion)); err != nil { + return err + } } - if _, err := git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\n[ci skip]", commitPrefix, newVersion)); err != nil { - return err + if !r.shouldRelease() { + fmt.Println("Skip release ... Use --state=3 to continue.") + return nil } releaseNotesFile := getRelaseNotesDocsTempFilename(version) diff --git a/releaser/releaser_test.go b/releaser/releaser_test.go index 64160054..0c58bb96 100644 --- a/releaser/releaser_test.go +++ b/releaser/releaser_test.go @@ -51,7 +51,7 @@ func TestCalculateVersions(t *testing.T) { "0.21-DEV", }, { - New(0, 2, true), + New(0, 3, true), startVersion, "0.20", "0.21-DEV", @@ -63,7 +63,7 @@ func TestCalculateVersions(t *testing.T) { "0.20-DEV", }, { - New(3, 2, true), + New(3, 3, true), startVersion.Next(), "0.21", "0.21-DEV",