ref: baa414ae414e8b0da365cfb756af0177dbdc003f
parent: cdf32f08c7aa5a362c75b541821983a970ffd2ef
author: Bjørn Erik Pedersen <[email protected]>
date: Mon May 22 12:04:40 EDT 2017
releaser: Add a new step When doing it step-by-step, we need to update the version numbers in its own step.
--- a/releaser/releaser.go
+++ b/releaser/releaser.go
@@ -31,7 +31,12 @@
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) 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,7 +120,7 @@
var gitCommits gitInfos
- if r.shouldPrepare() || r.shouldRelease() {
+ if r.shouldPrepareReleasenotes() || r.shouldRelease() {
gitCommits, err = getGitInfos(changeLogFromTag, true)
if err != nil {
return err
@@ -118,7 +127,7 @@
}
}
- if r.shouldPrepare() {
+ if r.shouldPrepareReleasenotes() {
releaseNotesFile, err := writeReleaseNotesToDocsTemp(version, gitCommits)
if err != nil {
return err
@@ -132,17 +141,19 @@
}
}
- 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)
--- a/releaser/releaser_test.go
+++ b/releaser/releaser_test.go
@@ -51,7 +51,7 @@
"0.21-DEV",
},
{
- New(0, 2, true),
+ New(0, 3, true),
startVersion,
"0.20",
"0.21-DEV",
@@ -63,7 +63,7 @@
"0.20-DEV",
},
{
- New(3, 2, true),
+ New(3, 3, true),
startVersion.Next(),
"0.21",
"0.21-DEV",