Skip to content

Commit feb6f57

Browse files
committed
release clean
1 parent 9a3ae5f commit feb6f57

1 file changed

Lines changed: 21 additions & 13 deletions

File tree

Rakefile

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@ task :"lint:fix" do
1919
sh "bundle exec standardrb --fix"
2020
end
2121

22-
desc "Remove all ignored files (coverage, pkg, etc.)"
22+
desc "Remove Ruby build artifacts (coverage, pkg, gems, etc.)"
2323
task :clean do
24-
sh "git clean -fdX"
24+
FileUtils.rm_rf("pkg")
25+
FileUtils.rm_rf("coverage")
26+
FileUtils.rm_rf("tmp")
27+
FileUtils.rm_f(Dir.glob("*.gem"))
28+
FileUtils.rm_f("changelog.md")
2529
end
2630

2731
desc "Run all examples"
@@ -39,6 +43,11 @@ task :examples do
3943
end
4044
end
4145

46+
desc "Build the gem"
47+
task build: [:clean] do
48+
sh "gem build braintrust.gemspec"
49+
end
50+
4251
desc "Verify CI (lint + test)"
4352
task ci: [:lint, :test]
4453

@@ -51,19 +60,18 @@ namespace :release do
5160
sh "bash scripts/validate-release-tag.sh"
5261
end
5362

54-
desc "Build the gem"
55-
task build: [:clean] do
56-
sh "gem build braintrust.gemspec"
57-
end
58-
5963
desc "Publish gem to RubyGems (requires authentication)"
6064
task :publish do
61-
gem_file = FileList["braintrust-*.gem"].first
62-
unless gem_file
63-
puts "Error: No gem file found. Run 'rake release:build' first."
65+
gem_files = FileList["braintrust-*.gem"]
66+
if gem_files.empty?
67+
puts "Error: No gem file found. Run 'rake build' first."
68+
exit 1
69+
elsif gem_files.length > 1
70+
puts "Error: Multiple gem files found. Run 'rake clean' first."
71+
puts "Found: #{gem_files.join(", ")}"
6472
exit 1
6573
end
66-
sh "gem push #{gem_file}"
74+
sh "gem push #{gem_files.first}"
6775
end
6876

6977
desc "Generate changelog for release"
@@ -111,7 +119,7 @@ namespace :release do
111119

112120
begin
113121
# Build and publish
114-
Rake::Task["release:build"].invoke
122+
Rake::Task["build"].invoke
115123
Rake::Task["release:publish"].invoke
116124
puts "✓ Prerelease #{prerelease_version} published successfully!"
117125
ensure
@@ -123,6 +131,6 @@ namespace :release do
123131
end
124132

125133
desc "Full release: validate, lint, generate changelog, build, publish, and create GitHub release"
126-
task release: ["release:validate", :lint, "release:changelog", "release:build", "release:publish", "release:github"] do
134+
task release: ["release:validate", :lint, "release:changelog", :build, "release:publish", "release:github"] do
127135
puts "✓ Release completed successfully!"
128136
end

0 commit comments

Comments
 (0)