class Fastlane::Actions::MakeChangelogFromJenkinsAction
Public Class Methods
available_options()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 39 def self.available_options [ FastlaneCore::ConfigItem.new(key: :fallback_changelog, description: "Fallback changelog if there is not one on Jenkins, or it couldn't be read", optional: true, default_value: ""), FastlaneCore::ConfigItem.new(key: :include_commit_body, description: "Include the commit body along with the summary", optional: true, type: Boolean, default_value: true) ] end
category()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 76 def self.category :misc end
description()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 31 def self.description "Generate a changelog using the Changes section from the current Jenkins build" end
details()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 35 def self.details "This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build." end
example_code()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 67 def self.example_code [ 'make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: "Bug fixes and performance enhancements" )' ] end
is_supported?(platform)
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 63 def self.is_supported?(platform) true end
output()
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 53 def self.output [ ['FL_CHANGELOG', 'The changelog generated by Jenkins'] ] end
run(params)
click to toggle source
# File fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb, line 8 def self.run(params) require 'json' require 'net/http' changelog = "" if Helper.ci? || Helper.test? # The "BUILD_URL" environment variable is set automatically by Jenkins in every build jenkins_api_url = URI(ENV["BUILD_URL"] + "api/json\?wrapper\=changes\&xpath\=//changeSet//comment") begin json = JSON.parse(Net::HTTP.get(jenkins_api_url)) json['changeSet']['items'].each do |item| comment = params[:include_commit_body] ? item['comment'] : item['msg'] changelog << comment.strip + "\n" end rescue => ex UI.error("Unable to read/parse changelog from jenkins: #{ex.message}") end end Actions.lane_context[SharedValues::FL_CHANGELOG] = changelog.strip.length > 0 ? changelog : params[:fallback_changelog] end