Skip to content

Commit b59a6a9

Browse files
committed
Publish the release notes to GitHub using the GitHub CLI in draf mode when releasing
1 parent f74a4a6 commit b59a6a9

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

tools/releaser/lib/releaser.rb

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ def define
118118
desc "Prepare the release"
119119
task prep_release: %w(ensure_clean_state changelog:header build bundle)
120120

121+
task :check_gh_client do
122+
sh "gh auth status" do |ok, res|
123+
unless ok
124+
raise "GitHub CLI is not logged in. Please run `gh auth login` to log in."
125+
end
126+
end
127+
end
128+
121129
task :commit do
122130
Dir.chdir(root) do
123131
unless `git status -s`.strip.empty?
@@ -139,8 +147,17 @@ def define
139147
sh "git push --tags"
140148
end
141149

150+
desc "Create GitHub release"
151+
task create_release: :check_gh_client do
152+
Dir.chdir(root) do
153+
File.write("pkg/#{version}.md", release_notes)
154+
155+
sh "gh release create #{tag} -t #{version} -F pkg/#{version}.md --draft#{pre_release? ? " --prerelease" : ""}"
156+
end
157+
end
158+
142159
desc "Release all gems and create a tag"
143-
task release: %w(prep_release commit tag push)
160+
task release: %w(check_gh_client prep_release commit tag create_release push)
144161

145162
desc "Push the gem to rubygems.org and the npm package to npmjs.com"
146163
task push: FRAMEWORKS.map { |f| "#{f}:push" } + ["rails:push"]
@@ -227,7 +244,7 @@ def update_versions(framework)
227244
end
228245

229246
def release_notes
230-
release_notes = "#{version}\n"
247+
release_notes = +""
231248

232249
(FRAMEWORKS + ["guides"]).each do |framework|
233250
release_notes << "## #{framework_name(framework)}\n"

tools/releaser/test/releaser_test.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ def test_release_notes_returns_the_release_notes_for_a_framework
155155

156156
releaser = Releaser.new(root, "5.0.0")
157157
assert_equal(<<~RELEASE_NOTES, releaser.release_notes)
158-
5.0.0
159158
## Active Support
160159
161160
* Change in Active Support

0 commit comments

Comments
 (0)