Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Add some sanity checks to the gem push script

  • Loading branch information...
commit dab1d8dcc6030a5c1f5e88744d3c40d771be23a3 1 parent 6b3f521
@carllerche carllerche authored
Showing with 16 additions and 2 deletions.
  1. +16 −2 tasks/release.rb
View
18 tasks/release.rb
@@ -2,6 +2,7 @@
root = File.expand_path('../../', __FILE__)
version = File.read("#{root}/RAILS_VERSION").strip
+tag = "v#{version}"
directory "dist"
@@ -52,15 +53,28 @@
sh "gem install #{gem}"
end
+ task :prep_release => [:ensure_clean_state, :build]
+
task :push => :build do
sh "gem push #{gem}"
end
end
end
-namespace :git do
+namespace :release do
+ task :ensure_clean_state do
+ unless `git status -s | grep -v RAILS_VERSION`.strip.empty?
+ abort "[ABORTING] `git status` reports a dirty tree. Make sure all changes are committed"
+ end
+
+ unless ENV['SKIP_TAG'] || `git tag | grep #{tag}`.strip.empty?
+ abort "[ABORTING] `git tag` shows that #{tag} already exists. Has this version already\n"\
+ " been released? Git tagging can be skipped by setting SKIP_TAG=1"
+ end
+ end
+
task :tag do
- sh "git tag v#{version}"
+ sh "git tag #{tag}"
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.