Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Braintrust Ruby SDK

[![Gem Version](https://badge.fury.io/rb/braintrust.svg)](https://badge.fury.io/rb/braintrust)
[![Gem Version](https://img.shields.io/gem/v/braintrust.svg)](https://rubygems.org/gems/braintrust)
[![Documentation](https://img.shields.io/badge/docs-rubydoc.info-blue.svg)](https://rubydoc.info/gems/braintrust)
![Beta](https://img.shields.io/badge/status-beta-yellow)

Expand Down
24 changes: 13 additions & 11 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -174,35 +174,37 @@ namespace :release do
sh "bash scripts/validate-release-tag.sh"
end

task :publish do
task publish: ["release:validate", :lint, :build] do
gem_files = FileList["braintrust-*.gem"]
if gem_files.empty?
puts "Error: No gem file found. Run 'rake build' first."
puts "Error: No gem file found. Build task should have created it."
exit 1
elsif gem_files.length > 1
puts "Error: Multiple gem files found. Run 'rake clean' first."
puts "Error: Multiple gem files found. Clean task should have removed them."
puts "Found: #{gem_files.join(", ")}"
exit 1
end
sh "gem push #{gem_files.first}"
puts "✓ Gem pushed to RubyGems"
end

task :changelog do
sh "bash scripts/generate-release-notes.sh > changelog.md"
puts "✓ Changelog generated: changelog.md"
end

task :github do
unless File.exist?("changelog.md")
puts "Error: changelog.md not found. Run 'rake release:changelog' first."
exit 1
end

task github: [:changelog] do
require_relative "lib/braintrust/version"
tag = "v#{Braintrust::VERSION}"

sh "gh release create #{tag} --title 'Release #{tag}' --notes-file changelog.md"
sh "gh release create #{tag} --title '#{tag}' --notes-file changelog.md"

# Get the repository URL
repo = `gh repo view --json nameWithOwner -q .nameWithOwner`.strip
release_url = "https://github.com/#{repo}/releases/tag/#{tag}"

puts "✓ GitHub release created: #{tag}"
puts " #{release_url}"
end

task :prerelease do
Expand Down Expand Up @@ -240,6 +242,6 @@ namespace :release do
end
end

task release: ["release:validate", :lint, "release:changelog", :build, "release:publish", "release:github"] do
task release: ["release:publish", "release:github"] do
puts "✓ Release completed successfully!"
end