class Fastlane::Actions::UpdateJenkinsBuildAction
Public Class Methods
available_options()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 101 def self.available_options [ FastlaneCore::ConfigItem.new(key: :description, env_name: "UPDATE_JENKINS_BUILD_DESCRIPTION", description: "the description of current build", optional: false, type: String), FastlaneCore::ConfigItem.new(key: :url, env_name: "UPDATE_JENKINS_BUILD_URL", description: "the url of jenkins", default_value: ENV['JENKINS_URL'], optional: true, type: String), FastlaneCore::ConfigItem.new(key: :project, env_name: "UPDATE_JENKINS_BUILD_PROJECT", description: "the name of project(job)", default_value: ENV["JOB_NAME"], optional: true, type: String), FastlaneCore::ConfigItem.new(key: :build_number, env_name: "UPDATE_JENKINS_BUILD_BUILD_NUMBER", description: "the build number of project(job)", default_value: ENV["BUILD_NUMBER"], optional: true, type: Integer), FastlaneCore::ConfigItem.new(key: :user, env_name: "UPDATE_JENKINS_BUILD_USER", description: "the user of jenkins if enabled security", default_value: ENV["CICL_CHANGELOG_JENKINS_USER"], optional: true, type: String), FastlaneCore::ConfigItem.new(key: :password, env_name: "UPDATE_JENKINS_BUILD_PASSWORD", description: "the password of jenkins if enabled security", default_value: ENV["CICL_CHANGELOG_JENKINS_TOKEN"], optional: true, type: String), ] end
base_uri()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 60 def self.base_uri uri = URI(@url) uri.path = "/job/#{@project}/#{@build_number}" uri.to_s end
description()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 93 def self.description "Update build's description of jenkins" end
details()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 97 def self.details "MUST disable CSRF in Security configure" end
example_code()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 74 def self.example_code [ 'update_jenkins_build( description: "AdHoc v1.0 (1.0.1)" )', 'update_jenkins_build( url: "http://127.0.0.1:8080/", # specify specific jenkins url project: "foobar", # specify specific project name build_number: 75, # specify specific build number description: "AdHoc v1.0 (1.0.1)", user: "admin", password: "123" )', 'result = update_jenkins_build( description: "AdHoc v1.0 (1.0.1)" )' ] end
is_supported?(platform)
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 145 def self.is_supported?(platform) true end
return_type()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 70 def self.return_type :array end
return_value()
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 66 def self.return_value "[ture/false, response_body]" end
run(params)
click to toggle source
# File lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb, line 10 def self.run(params) @user = params[:user] @password = params[:password] @url = params[:url] @project = params[:project] @build_number = params[:build_number] @description = params[:description] url = "#{base_uri}/submitDescription" res = if @user || @password HTTP.basic_auth(user: @user, pass: @password) .post(url, form: {description: @description}) else HTTP.post(url, form: { "description" => @description, "Jenkins-Crumb" => "234234234234234234" }) end # Submit form succesed it will 302 to the build url. result = res.code == 302 ? 'success' : "#{res.code} fail" jenkins_version = Helper::UpdateJenkinsBuildHelper.jenkins_version(@url, @user, @password) params = { title: "Summary for update_jenkins_build #{UpdateJenkinsBuild::VERSION}".green, rows: { jenkins_version: jenkins_version, result: result, url: "#{base_uri}/editDescription", auth: @user ? true : false, description: @description, } } puts Terminal::Table.new(params) if res.code != 302 UI.error "Detect `update_jenkins_build` ran fail." if jenkins_version && Gem::Version.new(jenkins_version) > Gem::Version.new('2.221') UI.error "Because Jenkins v#{jenkins_version} removed 'disable CSRF Protection' option since 2.222," UI.error "You need append '-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true' into Jenkins startup argument." UI.error "Please check https://github.com/icyleaf/fastlane-plugin-update_jenkins_build/issues/2" else UI.error "Please 'disable CSRF Protection' in 'Global Security Settings' page from Jenkins." end end [result, res.body] end