summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrelease.sh4
-rw-r--r--tasks/postversion.rb30
2 files changed, 33 insertions, 1 deletions
diff --git a/release.sh b/release.sh
index fe673405..06f110e4 100755
--- a/release.sh
+++ b/release.sh
@@ -38,8 +38,10 @@ chmod 600 $HOME/.gem/credentials
git push origin $RELEASE_BRANCH
ruby tasks/release-notes.rb
gh release create v$RELEASE_VERSION -t v$RELEASE_VERSION -F release-notes.md -d
+ ruby tasks/postversion.rb
+ git commit -a -m 'prepare branch for development [no ci]'
+ git push origin $RELEASE_BRANCH
)
-
exit_code=$?
# nuke gem credentials
diff --git a/tasks/postversion.rb b/tasks/postversion.rb
new file mode 100644
index 00000000..84d8152e
--- /dev/null
+++ b/tasks/postversion.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+release_version = ENV['RELEASE_VERSION']
+major_minor_version = ((release_version.split '.').slice 0, 2).join '.'
+prerelease = (release_version.count '[a-z]') > 0 ? %(.#{(release_version.split '.', 3)[-1]}) : nil
+
+changelog_file = 'CHANGELOG.adoc'
+antora_file = 'docs/antora.yml'
+
+changelog_contents = File.readlines changelog_file, mode: 'r:UTF-8'
+last_release_idx = changelog_contents.index {|l| (l.start_with? '== ') && (%r/^== \d/.match? l) }
+changelog_contents.insert last_release_idx, <<~END
+== Unreleased
+
+_No changes since previous release._
+
+END
+
+antora_contents = (File.readlines antora_file, mode: 'r:UTF-8').map do |l|
+ if l.start_with? 'prerelease: '
+ %(prerelease: #{prerelease ? ?' + prerelease + ?' : 'false'}\n)
+ elsif l.start_with? 'version: '
+ %(version: '#{major_minor_version}'\n)
+ else
+ l
+ end
+end
+
+File.write changelog_file, changelog_contents.join, mode: 'w:UTF-8'
+File.write antora_file, antora_contents.join, mode: 'w:UTF-8'