diff --git a/Gemfile b/Gemfile index 1c54f3c..0d479ea 100644 --- a/Gemfile +++ b/Gemfile @@ -1,40 +1,41 @@ # This file is managed centrally by modulesync # https://github.com/theforeman/foreman-installer-modulesync source 'https://rubygems.org' gem 'puppet', ENV.key?('PUPPET_VERSION') ? "~> #{ENV['PUPPET_VERSION']}" : '>= 4.6' gem 'rake' gem 'rspec', '~> 3.0' gem 'rdoc', '~> 5.1.0', {"platforms"=>["ruby_21"]} gem 'rspec-puppet', '~> 2.3' gem 'rspec-puppet-facts', '>= 1.7' gem 'puppetlabs_spec_helper', '>= 2.1.1' gem 'puppet-lint', '>= 2' gem 'puppet-lint-absolute_classname-check' gem 'puppet-lint-classes_and_types_beginning_with_digits-check' gem 'puppet-lint-empty_string-check' gem 'puppet-lint-file_ensure-check' gem 'puppet-lint-leading_zero-check' gem 'puppet-lint-param-docs', '>= 1.3.0' gem 'puppet-lint-spaceship_operator_without_tag-check' gem 'puppet-lint-strict_indent-check' gem 'puppet-lint-trailing_comma-check' gem 'puppet-lint-undef_in_function-check' gem 'puppet-lint-unquoted_string-check' gem 'puppet-lint-variable_contains_upcase' gem 'puppet-lint-version_comparison-check' gem 'simplecov' +gem 'github_changelog_generator', {"git"=>"https://github.com/skywinder/github-changelog-generator", "ref"=>"20ee04ba1234e9e83eb2ffb5056e23d641c7a018", "groups"=>["development"]} gem 'puppet-blacksmith', '>= 4.1.0', {"groups"=>["development"]} gem 'beaker', '>= 3.9.0', {"groups"=>["system_tests"]} gem 'beaker-hostgenerator', '>= 1.1.10', {"groups"=>["system_tests"]} gem 'beaker-rspec', {"groups"=>["system_tests"]} gem 'beaker-module_install_helper', {"groups"=>["system_tests"]} gem 'beaker-puppet_install_helper', {"groups"=>["system_tests"]} gem 'metadata-json-lint' gem 'kafo_module_lint' gem 'rgen' gem 'parallel_tests' # vim:ft=ruby diff --git a/Rakefile b/Rakefile index a2d70ad..267d07e 100644 --- a/Rakefile +++ b/Rakefile @@ -1,31 +1,56 @@ # This file is managed centrally by modulesync # https://github.com/theforeman/foreman-installer-modulesync require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-lint/tasks/puppet-lint' # blacksmith isn't always present, e.g. on Travis with --without development begin require 'puppet_blacksmith/rake_tasks' Blacksmith::RakeTask.new do |t| t.tag_pattern = "%s" t.tag_message_pattern = "Version %s" t.tag_sign = true end rescue LoadError end +begin + require 'github_changelog_generator/task' + + # https://github.com/github-changelog-generator/github-changelog-generator/issues/313 + module GitHubChangelogGeneratorExtensions + def compound_changelog + super.gsub(/(fixes|fixing|refs) \\#(\d+)/i, '\1 [\\#\2](https://projects.theforeman.org/issues/\2)') + end + end + + class GitHubChangelogGenerator::Generator + prepend GitHubChangelogGeneratorExtensions + end + + GitHubChangelogGenerator::RakeTask.new :changelog do |config| + raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil? + metadata = JSON.load(File.read('metadata.json')) + config.user = metadata['author'] + config.project = "puppet-#{metadata['name'].split('-').last}" + config.future_release = metadata['version'] + config.exclude_labels = ['duplicate', 'question', 'invalid', 'wontfix', 'Modulesync', 'skip-changelog'] + end +rescue LoadError +end + PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp", "vendor/**/*.pp"] PuppetLint.configuration.log_format = '%{path}:%{line}:%{KIND}: %{message}' require 'puppet-lint-param-docs/tasks' PuppetLintParamDocs.define_selective do |config| config.pattern = ["manifests/init.pp"] end require 'kafo_module_lint/tasks' KafoModuleLint::RakeTask.new do |config| config.pattern = ["manifests/init.pp"] end task :default => [:release_checks]