diff options
author | Bjørn Erik Pedersen <[email protected]> | 2017-05-22 16:04:40 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2017-05-22 16:04:40 +0300 |
commit | baa414ae414e8b0da365cfb756af0177dbdc003f (patch) | |
tree | 2b8dbdc182051dbafb05e1dc3f82ad481bc86dc2 /releaser | |
parent | cdf32f08c7aa5a362c75b541821983a970ffd2ef (diff) | |
download | hugo-baa414ae414e8b0da365cfb756af0177dbdc003f.tar.gz hugo-baa414ae414e8b0da365cfb756af0177dbdc003f.zip |
releaser: Add a new step
When doing it step-by-step, we need to update the version numbers in its own step.
Diffstat (limited to 'releaser')
-rw-r--r-- | releaser/releaser.go | 37 | ||||
-rw-r--r-- | releaser/releaser_test.go | 4 |
2 files changed, 26 insertions, 15 deletions
diff --git a/releaser/releaser.go b/releaser/releaser.go index 088b52ec1..afb5fcddb 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 641600545..0c58bb969 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", |