Skip to content

Commit

Permalink
Automated some of the release process. (h/t jeweler)
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Burke committed Oct 5, 2010
1 parent 12b18c4 commit dce4265
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ obj
*.user
TestResults
GitTfs/GitVersionInfo
pkg
GitTfs.sln.*
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
source :rubygems
gem 'albacore'
gem 'jeweler'
10 changes: 10 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,24 @@ GEM
net-ssh (>= 2.0.15)
rake (>= 0.8.7)
rubyzip (>= 0.9.1)
gemcutter (0.6.1)
git (1.2.5)
jeweler (1.4.0)
gemcutter (>= 0.1.0)
git (>= 1.2.5)
rubyforge (>= 2.0.0)
json_pure (1.4.6)
net-sftp (2.0.5)
net-ssh (>= 2.0.9)
net-ssh (2.0.23)
rake (0.8.7)
rubyforge (2.0.4)
json_pure (>= 1.1.7)
rubyzip (0.9.4)

PLATFORMS
x86-mingw32

DEPENDENCIES
albacore
jeweler
99 changes: 99 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ require 'rubygems'
require 'bundler/setup'
require 'albacore'
require 'rexml/document'
require 'jeweler/version_helper'
require 'git'

task :default => %W(
build
Expand Down Expand Up @@ -67,3 +69,100 @@ def show_stream(e, s)
puts "#{s}:", data.get_text.value
end
end


desc "Package a release zip"
task :release => ['checks:clean_workdir', 'build:release', 'zip:release', 'tag']

namespace :checks do
task :clean_workdir do
unless clean_working_dir?
system 'git status'
raise "Unclean working directory! Be sure to commit or .gitignore everything first!"
end
end
end

namespace :zip do
zip :release do |zip|
zip.directories_to_zip 'GitTfs/bin/Release'
zip.output_file = "GitTfs-#{version_helper.to_s}.zip"
zip.output_path = File.expand_path('../pkg', __FILE__)
end
task :release => :pkg
end

directory 'pkg'

def version_helper
@version_helper ||= Jeweler::VersionHelper.new(File.dirname(__FILE__))
end

def repo
@repo ||= Git.open(File.dirname(__FILE__))
end

def commit opts
repo.add opts[:files]
repo.commit opts[:message]
end

def clean_working_dir?
(`git ls-files --deleted --modified --others --exclude=standard` == '') &&
(`git ls-files --cached --deleted --modified --others --exclude=standard` == '')
end

task :version do
$stdout.puts "Current version: #{version_helper.to_s}"
end

namespace :version do
task :cs do
File.open('Version.cs', 'w') do |f|
f.puts(
'partial class GitTfsProperties',
'{',
" public const string Version = \"#{version_helper.to_s}\";",
'}'
)
end
$stdout.puts 'Wrote Version.cs'
Rake::Task['version:cs'].reenable
end

namespace :bump do
desc "Bump to next major version"
task :major => :version do
version_helper.bump_major
version_helper.write
$stdout.puts "Updated version to #{version_helper.to_s}"
Rake::Task['version:cs'].invoke
commit(:files => ['VERSION', 'Version.cs'], :message => "Bumped to version #{version_helper.to_s}")
end
desc "Bump to next minor version"
task :minor => :version do
version_helper.bump_minor
version_helper.write
$stdout.puts "Updated version to #{version_helper.to_s}"
Rake::Task['version:cs'].invoke
commit(:files => ['VERSION', 'Version.cs'], :message => "Bumped to version #{version_helper.to_s}")
end
desc "Bump to next patch version"
task :patch => :version do
version_helper.bump_patch
version_helper.write
$stdout.puts "Updated version to #{version_helper.to_s}"
Rake::Task['version:cs'].invoke
commit(:files => ['VERSION', 'Version.cs'], :message => "Bumped to version #{version_helper.to_s}")
end
end
end

task :tag do
release_tag = "v#{version_helper.to_s}"
tag = repo.tag(release_tag) rescue nil
unless tag
$stdout.puts "Tagging #{release_tag}"
repo.add_tag(release_tag)
end
end
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.9.1

0 comments on commit dce4265

Please sign in to comment.