summaryrefslogtreecommitdiffstats
path: root/releaser
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-05-22 16:04:40 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-05-22 16:04:40 +0300
commitbaa414ae414e8b0da365cfb756af0177dbdc003f (patch)
tree2b8dbdc182051dbafb05e1dc3f82ad481bc86dc2 /releaser
parentcdf32f08c7aa5a362c75b541821983a970ffd2ef (diff)
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.go37
-rw-r--r--releaser/releaser_test.go4
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",