0.01
No release in over 3 years
Low commit activity in last 3 years
Configurable fork of bundlers release tasks.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.11, < 3

Runtime

>= 1.11, < 3
 Project Readme

Rake::Release

Customized fork for bundlers gem task helpers.

Automatically detects multiple gemspecs and protect from releasing code not matching git version tag.

Installation

Add this line to your Gemfile:

gem 'rake-release'

Usage

Simply require in Rakefile:

require 'rake/release'

Check with rake -D:

rake build
    Build rake-release-0.2.1.gem.gem into the pkg directory.

rake install
    Build and install rake-release-0.2.1.gem into system gems.

rake install:local
    Build and install rake-release-0.2.1.gem into system gems without network access.

rake release[remote]
    Create and push tag v0.2.1, build gem and publish to rubygems.org.

With multiple gemspecs

> rake -T
rake lib-alpha:build            # Build lib-alpha-0.6.0.gem.gem into the pkg directory
rake lib-alpha:install          # Build and install lib-alpha-0.6.0.gem into system gems
rake lib-alpha:install:local    # Build and install lib-alpha-0.6.0.gem into system gems without network access
rake lib-alpha:release[remote]  # Create and push tag v0.6.0, build gem and publish to rubygems.org
rake lib-beta:build             # Build lib-beta-0.8.0.gem.gem into the pkg directory
rake lib-beta:install           # Build and install lib-beta-0.8.0.gem into system gems
rake lib-beta:install:local     # Build and install lib-beta-0.8.0.gem into system gems without network access
rake lib-beta:release[remote]   # Create and push tag v0.6.0, build gem and publish to rubygems.org

With tag signing

Enable tag signing by manually loading the task:

require 'rake/release/task'

Rake::Release::Task.new do |spec|
  spec.sign_tag = true
end

Or with multiple gems:

require 'rake/release/task'

Rake::Release::Task.load_all do |spec|
  spec.sign_tag = true
end

Manually set namespace

require 'rake/release/task'

Rake::Release::Task.new do |spec|
  spec.namespace = 'client'
end
> rake -T
rake client:build            # Build rake-release-0.6.0.gem.gem into the pkg directory
rake client:install          # Build and install rake-release-0.6.0.gem into system gems
rake client:install:local    # Build and install rake-release-0.6.0.gem into system gems without network access
rake client:release[remote]  # Create and push tag v0.6.0, build gem and publish to rubygems.org

Set gem host and version tag

You can customize the task e.g. with a custom git tag or gem push host:

Rake::Release::Task.load_all do |spec|
  spec.version_tag = "gem-v#{spec.version}"
  spec.host = 'https://user:pass@gemhost/'
end

License

MIT