2021-11-06 07:36:59 -04:00
# frozen_string_literal: true
require 'bundler'
require 'puppet_litmus/rake_tasks' if Bundler . rubygems . find_name ( 'puppet_litmus' ) . any?
2015-04-16 18:04:30 -04:00
require 'puppetlabs_spec_helper/rake_tasks'
2018-08-22 06:07:49 -04:00
require 'puppet-syntax/tasks/puppet-syntax'
require 'puppet_blacksmith/rake_tasks' if Bundler . rubygems . find_name ( 'puppet-blacksmith' ) . any?
require 'github_changelog_generator/task' if Bundler . rubygems . find_name ( 'github_changelog_generator' ) . any?
2021-11-06 07:36:59 -04:00
require 'puppet-strings/tasks' if Bundler . rubygems . find_name ( 'puppet-strings' ) . any?
2015-04-23 14:32:48 -04:00
2018-08-22 06:07:49 -04:00
def changelog_user
return unless Rake . application . top_level_tasks . include? " changelog "
returnVal = nil || JSON . load ( File . read ( 'metadata.json' ) ) [ 'author' ]
raise " unable to find the changelog_user in .sync.yml, or the author in metadata.json " if returnVal . nil?
puts " GitHubChangelogGenerator user: #{ returnVal } "
returnVal
end
2015-04-16 18:04:30 -04:00
2018-08-22 06:07:49 -04:00
def changelog_project
return unless Rake . application . top_level_tasks . include? " changelog "
2021-11-06 07:36:59 -04:00
returnVal = nil
returnVal || = begin
metadata_source = JSON . load ( File . read ( 'metadata.json' ) ) [ 'source' ]
metadata_source_match = metadata_source && metadata_source . match ( %r{ .* \ /([^ \ /]*?)(?: \ .git)? \ Z } )
metadata_source_match && metadata_source_match [ 1 ]
end
raise " unable to find the changelog_project in .sync.yml or calculate it from the source in metadata.json " if returnVal . nil?
2018-08-22 06:07:49 -04:00
puts " GitHubChangelogGenerator project: #{ returnVal } "
returnVal
end
def changelog_future_release
return unless Rake . application . top_level_tasks . include? " changelog "
2021-11-06 07:36:59 -04:00
returnVal = " v%s " % JSON . load ( File . read ( 'metadata.json' ) ) [ 'version' ]
2018-08-22 06:07:49 -04:00
raise " unable to find the future_release (version) in metadata.json " if returnVal . nil?
puts " GitHubChangelogGenerator future_release: #{ returnVal } "
returnVal
end
PuppetLint . configuration . send ( 'disable_relative' )
2021-11-06 07:36:59 -04:00
2018-08-22 06:07:49 -04:00
if Bundler . rubygems . find_name ( 'github_changelog_generator' ) . any?
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?
config . user = " #{ changelog_user } "
config . project = " #{ changelog_project } "
config . future_release = " #{ changelog_future_release } "
config . exclude_labels = [ 'maintenance' ]
config . header = " # Change log \n \n All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org). "
config . add_pr_wo_labels = true
config . issues = false
2021-11-06 07:36:59 -04:00
config . merge_prefix = " # # # UNCATEGORIZED PRS; LABEL THEM ON GITHUB "
2018-08-22 06:07:49 -04:00
config . configure_sections = {
" Changed " = > {
" prefix " = > " # # # Changed " ,
" labels " = > [ " backwards-incompatible " ] ,
} ,
" Added " = > {
" prefix " = > " # # # Added " ,
2021-11-06 07:36:59 -04:00
" labels " = > [ " enhancement " , " feature " ] ,
2018-08-22 06:07:49 -04:00
} ,
" Fixed " = > {
" prefix " = > " # # # Fixed " ,
2021-11-06 07:36:59 -04:00
" labels " = > [ " bug " , " documentation " , " bugfix " ] ,
2018-08-22 06:07:49 -04:00
} ,
}
2015-04-16 18:04:30 -04:00
end
2018-08-22 06:07:49 -04:00
else
desc 'Generate a Changelog from GitHub'
task :changelog do
raise <<EOM
2021-11-06 07:36:59 -04:00
The changelog tasks depends on recent features of the github_changelog_generator gem .
2018-08-22 06:07:49 -04:00
Please manually add it to your . sync . yml for now , and run ` pdk update ` :
- - -
Gemfile :
optional :
':development' :
- gem : 'github_changelog_generator'
2021-11-06 07:36:59 -04:00
version : '~> 1.15'
condition : " Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0') "
2018-08-22 06:07:49 -04:00
EOM
2015-04-16 18:04:30 -04:00
end
end
2015-04-23 14:32:48 -04:00