- Reference - An under-the-hood peek at what the gem is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
The simp-rake-helpers
gem provides common Rake tasks to support the SIMP build process.
This gem is part of (the build tooling for) the System Integrity Management Platform, a compliance-management framework built on Puppet.
- Supports multithreaded mock operations
- RPM packaging and signing
- Rubygem packaging
# Variables:
#
# SIMP_GEM_SERVERS | a space/comma delimited list of rubygem servers
# PUPPET_VERSION | specifies the version of the puppet gem to load
puppetversion = ENV.key?('PUPPET_VERSION') ? "#{ENV['PUPPET_VERSION']}" : '~>3'
gem_sources = ENV.key?('SIMP_GEM_SERVERS') ? ENV['SIMP_GEM_SERVERS'].split(/[, ]+/) : ['https://rubygems.org']
gem_sources.each { |gem_source| source gem_source }
group :test do
gem 'puppet', puppetversion
gem 'beaker-rspec'
gem 'vagrant-wrapper'
# Puppet 4+ has issues with Hiera 3.1+
if puppetversion.to_s =~ />(\d+)/
pversion = $1
else
pversion = puppetversion
end
if Gem::Dependency.new('puppet', '~> 4.0').match?('puppet', pversion)
gem 'hiera', '~> 3.0.0'
end
# simp-rake-helpers does not suport puppet 2.7.X
if "#{ENV['PUPPET_VERSION']}".scan(/\d+/).first != '2' &&
# simp-rake-helpers and ruby 1.8.7 bomb Travis tests
# TODO: fix upstream deps (parallel in simp-rake-helpers)
RUBY_VERSION.sub(/\.\d+$/,'') != '1.8'
gem 'simp-rake-helpers'
end
end
Within the project's Rakefile:
require 'simp/rake/pupmod/helpers'
Simp::Rake::Pupmod::Helpers.new(File.dirname(__FILE__))
Within the project's Rakefile:
require 'simp/rake/rubygem'
# e.g., "simp-rake-helpers"
package = 'name-of-rubygem'
Simp::Rake::Rubygem.new(package, File.direname(__FILE__)
To see the extra rake tasks:
bunde exec rake -T
This Gem provides the ability to generate an RPM from any Puppet module.
By default, the information for the RPM will be pulled from the Forge compatible metadata.json.
The name
and version
fields must be present and well formatted. The
license
field is also used if present.
NOTE: The dependencies in metadata.json
are not used to generate RPM
dependencies!
The Changelog is pulled from a file called CHANGELOG
at the top level of the
project. If this file does not start with a well formatted RPM changelog
string, it will be ignored.
The Changelog is not fully checked before attempting to build the RPM. Your RPM build will fail if the Changelog entries are not valid per the RPM specification.
It is likely that you will want to declare your dependencies in your RPM. To do
this, you can create a build/rpm_metadata
directory at the root of your
project. A file named requires
in the build/rpm_metadata
directory will be
used to declare the dependencies of the RPM. A file named release
in the
build/rpm_metadata
directory will be used to declare the RPM release
number.
The following directives may be declared in the requires
file:
- Provides
- Requires
- Obsoletes
Builds an RPM to package the current SIMP project.
NOTE: Building RPMs requires a working Mock setup (http://fedoraproject.org/wiki/Projects/Mock)
- :chroot - The Mock chroot configuration to use. See the '--root' option in mock(1)."
- :unique - Whether or not to build the RPM in a unique Mock environment. This can be very useful for parallel builds of all modules.
- :snapshot_release - Add snapshot_release (date and time) to rpm version. Rpm spec file must have macro for this to work.
Scrub the current SIMP project's mock build directory.
Build the pupmod-simp-iptables SRPM. Building RPMs requires a working Mock setup (http://fedoraproject.org/wiki/Projects/Mock)
NOTE: Building RPMs requires a working Mock setup (http://fedoraproject.org/wiki/Projects/Mock)
- :chroot - The Mock chroot configuration to use. See the '--root' option in mock(1)."
- :unique - Whether or not to build the SRPM in a unique Mock environment. This can be very useful for parallel builds of all modules.
- :snapshot_release - Add snapshot_release (date and time) to rpm version. The RPM spec file must support macros for this to work.
Build the pupmod-simp-iptables tar package
- :snapshot_release - Add snapshot_release (date and time) to rpm version, rpm spec file must have macro for this to work.
Please see the SIMP Contribution Guidelines.
See LICENSE
See CHANGELOG.md