pantograph 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/pantograph/lib/assets/custom_action_template.rb +18 -14
  4. data/pantograph/lib/pantograph/action.rb +1 -1
  5. data/pantograph/lib/pantograph/action_collector.rb +1 -1
  6. data/pantograph/lib/pantograph/actions/actions_helper.rb +2 -2
  7. data/pantograph/lib/pantograph/actions/bundle_install.rb +120 -84
  8. data/pantograph/lib/pantograph/actions/cloc.rb +64 -49
  9. data/pantograph/lib/pantograph/actions/create_pull_request.rb +1 -1
  10. data/pantograph/lib/pantograph/actions/danger.rb +103 -82
  11. data/pantograph/lib/pantograph/actions/debug.rb +2 -2
  12. data/pantograph/lib/pantograph/actions/default_platform.rb +5 -3
  13. data/pantograph/lib/pantograph/actions/download.rb +10 -9
  14. data/pantograph/lib/pantograph/actions/echo.rb +1 -1
  15. data/pantograph/lib/pantograph/actions/ensure_bundle_exec.rb +18 -10
  16. data/pantograph/lib/pantograph/actions/ensure_env_vars.rb +16 -17
  17. data/pantograph/lib/pantograph/actions/ensure_git_branch.rb +14 -14
  18. data/pantograph/lib/pantograph/actions/ensure_git_status_clean.rb +18 -34
  19. data/pantograph/lib/pantograph/actions/get_github_release.rb +1 -1
  20. data/pantograph/lib/pantograph/actions/git_branch.rb +6 -7
  21. data/pantograph/lib/pantograph/actions/git_commit.rb +21 -13
  22. data/pantograph/lib/pantograph/actions/git_pull.rb +4 -23
  23. data/pantograph/lib/pantograph/actions/git_pull_tags.rb +31 -0
  24. data/pantograph/lib/pantograph/actions/git_submodule_update.rb +23 -16
  25. data/pantograph/lib/pantograph/actions/git_tag_exists.rb +21 -25
  26. data/pantograph/lib/pantograph/actions/gradle.rb +82 -58
  27. data/pantograph/lib/pantograph/actions/import.rb +1 -1
  28. data/pantograph/lib/pantograph/actions/import_from_git.rb +48 -31
  29. data/pantograph/lib/pantograph/actions/is_ci.rb +1 -1
  30. data/pantograph/lib/pantograph/actions/is_verbose.rb +77 -0
  31. data/pantograph/lib/pantograph/actions/jira.rb +50 -55
  32. data/pantograph/lib/pantograph/actions/lane_context.rb +6 -6
  33. data/pantograph/lib/pantograph/actions/last_git_commit.rb +3 -3
  34. data/pantograph/lib/pantograph/actions/min_pantograph_version.rb +19 -25
  35. data/pantograph/lib/pantograph/actions/number_of_commits.rb +34 -30
  36. data/pantograph/lib/pantograph/actions/opt_out_usage.rb +15 -9
  37. data/pantograph/lib/pantograph/actions/pantograph_version.rb +2 -2
  38. data/pantograph/lib/pantograph/actions/println.rb +1 -1
  39. data/pantograph/lib/pantograph/actions/prompt.rb +31 -22
  40. data/pantograph/lib/pantograph/actions/prompt_secure.rb +128 -0
  41. data/pantograph/lib/pantograph/actions/reset_git_repo.rb +1 -1
  42. data/pantograph/lib/pantograph/actions/set_github_release.rb +4 -4
  43. data/pantograph/lib/pantograph/actions/sh.rb +3 -3
  44. data/pantograph/lib/pantograph/commands_generator.rb +1 -1
  45. data/pantograph/lib/pantograph/helper/git_helper.rb +29 -0
  46. data/pantograph/lib/pantograph/lane_manager.rb +1 -1
  47. data/pantograph/lib/pantograph/pant_file.rb +22 -16
  48. data/pantograph/lib/pantograph/plugins/template/README.md.erb +1 -1
  49. data/pantograph/lib/pantograph/setup/setup.rb +6 -17
  50. data/pantograph/lib/pantograph/version.rb +1 -1
  51. data/pantograph_core/lib/pantograph_core/configuration/commander_generator.rb +1 -1
  52. data/pantograph_core/lib/pantograph_core/globals.rb +1 -2
  53. data/pantograph_core/lib/pantograph_core/helper.rb +19 -6
  54. data/pantograph_core/lib/pantograph_core/ui/implementations/shell.rb +1 -4
  55. metadata +19 -5
  56. data/pantograph/lib/pantograph/actions/git_add.rb +0 -93
  57. data/pantograph/lib/pantograph/actions/make_changelog_from_jenkins.rb +0 -81
  58. data/pantograph/lib/pantograph/actions/nexus_upload.rb +0 -230
@@ -157,10 +157,10 @@ module Pantograph
157
157
  [
158
158
  PantographCore::ConfigItem.new(key: :repository_name,
159
159
  env_name: 'SET_GITHUB_RELEASE_REPOSITORY_NAME',
160
- description: "The path to your repo, e.g. 'pantograph/pantograph'",
160
+ description: "The path to your repo, e.g. 'johnknapprs/pantograph'",
161
161
  verify_block: proc do |value|
162
- UI.user_error!("Please only pass the path, e.g. 'pantograph/pantograph'") if value.include?("github.com")
163
- UI.user_error!("Please only pass the path, e.g. 'pantograph/pantograph'") if value.split('/').count != 2
162
+ UI.user_error!("Please only pass the path, e.g. 'johnknapprs/pantograph'") if value.include?("github.com")
163
+ UI.user_error!("Please only pass the path, e.g. 'johnknapprs/pantograph'") if value.split('/').count != 2
164
164
  end),
165
165
  PantographCore::ConfigItem.new(key: :server_url,
166
166
  env_name: 'GITHUB_RELEASE_SERVER_URL',
@@ -255,7 +255,7 @@ module Pantograph
255
255
  def self.example_code
256
256
  [
257
257
  'github_release = set_github_release(
258
- repository_name: "pantograph/pantograph",
258
+ repository_name: "johnknapprs/pantograph",
259
259
  api_token: ENV["GITHUB_TOKEN"],
260
260
  name: "Super New actions",
261
261
  tag_name: "v1.22.0",
@@ -10,13 +10,13 @@ module Pantograph
10
10
  #####################################################
11
11
 
12
12
  def self.description
13
- "Runs a shell command"
13
+ 'Runs a shell command'
14
14
  end
15
15
 
16
16
  def self.details
17
17
  [
18
- "Allows running an arbitrary shell command.",
19
- "Be aware of a specific behavior of `sh` action with regard to the working directory. For details, refer to [Advanced](https://johnknapprs.github.io/pantograph/advanced/#directory-behavior)."
18
+ 'Allows running an arbitrary shell command.',
19
+ 'Be aware of a specific behavior of `sh` action with regard to the working directory. For details, refer to [Advanced](https://johnknapprs.github.io/pantograph/advanced/#directory-behavior).'
20
20
  ].join("\n")
21
21
  end
22
22
 
@@ -84,7 +84,7 @@ module Pantograph
84
84
  ].join("\n")
85
85
  program :help, 'Author', 'Felix Krause <pantograph@krausefx.com>'
86
86
  program :help, 'Website', 'https://pantograph.tools'
87
- program :help, 'GitHub', 'https://github.com/pantograph/pantograph'
87
+ program :help, 'GitHub', 'https://github.com/johnknapprs/pantograph'
88
88
  program :help_formatter, :compact
89
89
 
90
90
  global_option('--verbose') { PantographCore::Globals.verbose = true }
@@ -132,4 +132,33 @@ module Pantograph
132
132
  end
133
133
  end
134
134
  end
135
+
136
+ module Helper
137
+ module Git
138
+ # Returns the current git branch - can be replaced using the environment variable `GIT_BRANCH`
139
+ def self.current_branch
140
+ return ENV['GIT_BRANCH'] if ENV['GIT_BRANCH'].to_s.length > 0 # set by Jenkins
141
+ s = Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp
142
+ return s.to_s.strip if s.to_s.length > 0
143
+ nil
144
+ rescue
145
+ nil
146
+ end
147
+
148
+ def self.repo_status
149
+ Actions.sh('git status --porcelain')
150
+ end
151
+
152
+ def self.repo_clean?
153
+ repo_status.empty?
154
+ end
155
+
156
+ def self.is_git?
157
+ Actions.sh('git rev-parse HEAD', log: false)
158
+ return true
159
+ rescue
160
+ UI.user_error!("Not in a git repository.")
161
+ end
162
+ end
163
+ end
135
164
  end
@@ -95,7 +95,7 @@ module Pantograph
95
95
  end
96
96
 
97
97
  if available.empty?
98
- UI.user_error!("It looks like you don't have any lanes to run just yet. Check out how to get started here: https://github.com/pantograph/pantograph 🚀")
98
+ UI.user_error!("It looks like you don't have any lanes to run just yet. Check out how to get started here: https://github.com/johnknapprs/pantograph 🚀")
99
99
  end
100
100
 
101
101
  rows = []
@@ -236,14 +236,18 @@ module Pantograph
236
236
  end
237
237
 
238
238
  def import(path = nil)
239
- UI.user_error!("Please pass a path to the `import` action") unless path
239
+ if path.nil?
240
+ UI.user_error!("Please pass a path to the `import` action")
241
+ end
240
242
 
241
243
  path = path.dup.gsub("~", Dir.home)
242
244
  unless Pathname.new(path).absolute? # unless an absolute path
243
245
  path = File.join(File.expand_path('..', @path), path)
244
246
  end
245
247
 
246
- UI.user_error!("Could not find Pantfile at path '#{path}'") unless File.exist?(path)
248
+ unless File.exist?(path)
249
+ UI.user_error!("Could not find Pantfile at path '#{path}'")
250
+ end
247
251
 
248
252
  # First check if there are local actions to import in the same directory as the Pantfile
249
253
  actions_path = File.join(File.expand_path("..", path), 'actions')
@@ -262,8 +266,10 @@ module Pantograph
262
266
  # @param branch [String] The branch to checkout in the repository
263
267
  # @param path [String] The path to the Pantfile
264
268
  # @param version [String, Array] Version requirement for repo tags
265
- def import_from_git(url: nil, branch: 'HEAD', path: 'pantograph/Pantfile', version: nil)
266
- UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
269
+ def import_from_git(url: nil, branch: 'master', path: 'pantograph/Pantfile', version: nil)
270
+ if url.to_s.length == 0
271
+ UI.user_error!("Please pass the git url to the `import_from_git` action")
272
+ end
267
273
 
268
274
  Actions.execute_action('import_from_git') do
269
275
  require 'tmpdir'
@@ -271,17 +277,15 @@ module Pantograph
271
277
  action_launched('import_from_git')
272
278
 
273
279
  # Checkout the repo
274
- repo_name = url.split("/").last
280
+ repo_name = url.split('/').last
275
281
  checkout_param = branch
276
282
 
277
- Dir.mktmpdir("fl_clone") do |tmp_path|
283
+ Dir.mktmpdir('pant_clone') do |tmp_path|
278
284
  clone_folder = File.join(tmp_path, repo_name)
279
285
 
280
- branch_option = "--branch #{branch}" if branch != 'HEAD'
281
-
282
- UI.message("Cloning remote git repo...")
286
+ UI.message('Cloning remote git repo...')
283
287
  Helper.with_env_values('GIT_TERMINAL_PROMPT' => '0') do
284
- Actions.sh("git clone #{url.shellescape} #{clone_folder.shellescape} --depth 1 -n #{branch_option}")
288
+ Actions.sh("git clone #{url.shellescape} #{clone_folder.shellescape} --depth 1 -n --branch #{branch}")
285
289
  end
286
290
 
287
291
  unless version.nil?
@@ -294,20 +298,22 @@ module Pantograph
294
298
  Actions.sh("cd #{clone_folder.shellescape} && git checkout #{checkout_param.shellescape} #{path.shellescape}")
295
299
 
296
300
  # We also want to check out all the local actions of this pantograph setup
297
- containing = path.split(File::SEPARATOR)[0..-2]
298
- containing = "." if containing.count == 0
301
+ containing = path.split(File::SEPARATOR)[0..-2]
302
+ containing = "." if containing.count == 0
299
303
  actions_folder = File.join(containing, "actions")
304
+
300
305
  begin
301
306
  Actions.sh("cd #{clone_folder.shellescape} && git checkout #{checkout_param.shellescape} #{actions_folder.shellescape}")
302
307
  rescue
303
308
  # We don't care about a failure here, as local actions are optional
304
309
  end
305
310
 
306
- return_value = import(File.join(clone_folder, path))
307
-
308
- action_completed('import_from_git', status: PantographCore::ActionCompletionStatus::SUCCESS)
311
+ import(File.join(clone_folder, path))
309
312
 
310
- return return_value
313
+ action_completed(
314
+ 'import_from_git',
315
+ status: PantographCore::ActionCompletionStatus::SUCCESS
316
+ )
311
317
  end
312
318
  end
313
319
  end
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Getting Started
6
6
 
7
- This project is a [_pantograph_](https://github.com/pantograph/pantograph) plugin. To get started with `<%= gem_name %>`, add it to your project by running:
7
+ This project is a [_pantograph_](https://github.com/johnknapprs/pantograph) plugin. To get started with `<%= gem_name %>`, add it to your project by running:
8
8
 
9
9
  ```bash
10
10
  pantograph add_plugin <%= plugin_name %>
@@ -214,23 +214,12 @@ module Pantograph
214
214
 
215
215
  def suggest_next_steps
216
216
  UI.header("Where to go from here?")
217
- if self.platform == :gradle
218
- UI.message("📸 Learn more about how to automatically generate localized Google Play screenshots:")
219
- UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/screenshots/".cyan)
220
- UI.message("👩‍✈️ Learn more about distribution to beta testing services:")
221
- UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/beta-deployment/".cyan)
222
- UI.message("🚀 Learn more about how to automate the Google Play release process:")
223
- UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/release-deployment/".cyan)
224
- else
225
- # UI.message("📸 Learn more about how to automatically generate localized App Store screenshots:")
226
- # UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/mac/screenshots/".cyan)
227
- UI.message("👩‍✈️ Learn more about distribution to beta testing services:")
228
- UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/mac/beta-deployment/".cyan)
229
- # UI.message("🚀 Learn more about how to automate the App Store release process:")
230
- # UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/mac/appstore-deployment/".cyan)
231
- # UI.message("👩‍⚕️ Learn more about how to setup code signing with pantograph")
232
- # UI.message("\t\thttps://johnknapprs.github.io/pantograph/codesigning/getting-started/".cyan)
233
- end
217
+ UI.message("📸 Learn more about Pantograph Official Actions")
218
+ UI.message("\t\thttps://johnknapprs.github.io/pantograph/actions/".cyan)
219
+ UI.message("👩‍✈️ Learn more about Pantograph Lane Features")
220
+ UI.message("\t\thttps://johnknapprs.github.io/pantograph/advanced/lanes/".cyan)
221
+ UI.message("🚀 Check out the entire documentation site for Pantograph")
222
+ UI.message("\t\thttps://johnknapprs.github.io/pantograph/".cyan)
234
223
 
235
224
  # we crash here, so that this never happens when a new setup method is added
236
225
  return if self.lane_to_mention.to_s.length == 0
@@ -1,5 +1,5 @@
1
1
  module Pantograph
2
- VERSION = '0.1.14'.freeze
2
+ VERSION = '0.1.15'.freeze
3
3
  SUMMARY = 'Another way to automate your apps'
4
4
  DESCRIPTION = 'A way to automate your apps, forked from Fastlane'.freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -73,7 +73,7 @@ module PantographCore
73
73
  # Passing a nil value to global_option has been shown to create problems with
74
74
  # option parsing!
75
75
  #
76
- # See: https://github.com/pantograph/pantograph_core/pull/89
76
+ # See: https://github.com/johnknapprs/pantograph_core/pull/89
77
77
  #
78
78
  # If we don't have a data type for this option, we tell it to act like a String.
79
79
  # This allows us to get a reasonable value for boolean options that can be
@@ -20,8 +20,7 @@ module PantographCore
20
20
  end
21
21
 
22
22
  def self.verbose?
23
- return nil unless @verbose
24
- return true
23
+ @verbose ? true : nil
25
24
  end
26
25
  end
27
26
  end
@@ -67,16 +67,29 @@ module PantographCore
67
67
  # @return [boolean] true if building in a known CI environment
68
68
  def self.ci?
69
69
  # Check for Jenkins, Travis CI, ... environment variables
70
- ['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CIRCLECI', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION', 'GITHUB_ACTIONS'].each do |current|
71
- return true if ENV.key?(current)
72
- end
73
- return false
70
+ ci_vars = [
71
+ 'JENKINS_HOME',
72
+ 'JENKINS_URL',
73
+ 'TRAVIS',
74
+ 'CIRCLECI',
75
+ 'CI',
76
+ 'APPCENTER_BUILD_ID',
77
+ 'TEAMCITY_VERSION',
78
+ 'GO_PIPELINE_NAME',
79
+ 'bamboo_buildKey',
80
+ 'GITLAB_CI', 'XCS',
81
+ 'TF_BUILD',
82
+ 'GITHUB_ACTION',
83
+ 'GITHUB_ACTIONS'
84
+ ]
85
+
86
+ ci_vars.any? { |var| ENV.key?(var) }
74
87
  end
75
88
 
76
89
  def self.operating_system
77
- return "macOS" if RUBY_PLATFORM.downcase.include?("darwin")
90
+ return "macOS" if RUBY_PLATFORM.downcase.include?("darwin")
78
91
  return "Windows" if RUBY_PLATFORM.downcase.include?("mswin")
79
- return "Linux" if RUBY_PLATFORM.downcase.include?("linux")
92
+ return "Linux" if RUBY_PLATFORM.downcase.include?("linux")
80
93
  return "Unknown"
81
94
  end
82
95
 
@@ -119,10 +119,7 @@ module PantographCore
119
119
  #####################################################
120
120
 
121
121
  def interactive?
122
- interactive = true
123
- interactive = false if $stdout.isatty == false
124
- interactive = false if Helper.ci?
125
- return interactive
122
+ ($stdout.isatty == false || Helper.ci?) ? false : true
126
123
  end
127
124
 
128
125
  def input(message)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pantograph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Knapp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-24 00:00:00.000000000 Z
11
+ date: 2020-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slack-notifier
@@ -132,6 +132,20 @@ dependencies:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
134
  version: 2.0.0
135
+ - !ruby/object:Gem::Dependency
136
+ name: danger
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 6.1.0
142
+ type: :runtime
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 6.1.0
135
149
  - !ruby/object:Gem::Dependency
136
150
  name: tty-screen
137
151
  requirement: !ruby/object:Gem::Requirement
@@ -731,10 +745,10 @@ files:
731
745
  - pantograph/lib/pantograph/actions/ensure_git_status_clean.rb
732
746
  - pantograph/lib/pantograph/actions/erb.rb
733
747
  - pantograph/lib/pantograph/actions/get_github_release.rb
734
- - pantograph/lib/pantograph/actions/git_add.rb
735
748
  - pantograph/lib/pantograph/actions/git_branch.rb
736
749
  - pantograph/lib/pantograph/actions/git_commit.rb
737
750
  - pantograph/lib/pantograph/actions/git_pull.rb
751
+ - pantograph/lib/pantograph/actions/git_pull_tags.rb
738
752
  - pantograph/lib/pantograph/actions/git_submodule_update.rb
739
753
  - pantograph/lib/pantograph/actions/git_tag_exists.rb
740
754
  - pantograph/lib/pantograph/actions/github_api.rb
@@ -742,17 +756,17 @@ files:
742
756
  - pantograph/lib/pantograph/actions/import.rb
743
757
  - pantograph/lib/pantograph/actions/import_from_git.rb
744
758
  - pantograph/lib/pantograph/actions/is_ci.rb
759
+ - pantograph/lib/pantograph/actions/is_verbose.rb
745
760
  - pantograph/lib/pantograph/actions/jira.rb
746
761
  - pantograph/lib/pantograph/actions/lane_context.rb
747
762
  - pantograph/lib/pantograph/actions/last_git_commit.rb
748
- - pantograph/lib/pantograph/actions/make_changelog_from_jenkins.rb
749
763
  - pantograph/lib/pantograph/actions/min_pantograph_version.rb
750
- - pantograph/lib/pantograph/actions/nexus_upload.rb
751
764
  - pantograph/lib/pantograph/actions/number_of_commits.rb
752
765
  - pantograph/lib/pantograph/actions/opt_out_usage.rb
753
766
  - pantograph/lib/pantograph/actions/pantograph_version.rb
754
767
  - pantograph/lib/pantograph/actions/println.rb
755
768
  - pantograph/lib/pantograph/actions/prompt.rb
769
+ - pantograph/lib/pantograph/actions/prompt_secure.rb
756
770
  - pantograph/lib/pantograph/actions/push_git_tags.rb
757
771
  - pantograph/lib/pantograph/actions/push_to_git_remote.rb
758
772
  - pantograph/lib/pantograph/actions/puts.rb
@@ -1,93 +0,0 @@
1
- module Pantograph
2
- module Actions
3
- class GitAddAction < Action
4
- def self.run(params)
5
- should_escape = params[:shell_escape]
6
-
7
- if params[:pathspec]
8
- paths = params[:pathspec]
9
- success_message = "Successfully added from \"#{paths}\" 💾."
10
- elsif params[:path]
11
- if params[:path].kind_of?(String)
12
- paths = shell_escape(params[:path], should_escape)
13
- elsif params[:path].kind_of?(Array)
14
- paths = params[:path].map do |p|
15
- shell_escape(p, should_escape)
16
- end.join(' ')
17
- end
18
- success_message = "Successfully added \"#{paths}\" 💾."
19
- else
20
- paths = "."
21
- success_message = "Successfully added all files 💾."
22
- end
23
-
24
- result = Actions.sh("git add #{paths}", log: PantographCore::Globals.verbose?).chomp
25
- UI.success(success_message)
26
- return result
27
- end
28
-
29
- def self.shell_escape(path, should_escape)
30
- path = path.shellescape if should_escape
31
- path
32
- end
33
-
34
- #####################################################
35
- # @!group Documentation
36
- #####################################################
37
-
38
- def self.description
39
- "Directly add the given file or all files"
40
- end
41
-
42
- def self.available_options
43
- [
44
- PantographCore::ConfigItem.new(key: :path,
45
- description: "The file(s) and path(s) you want to add",
46
- is_string: false,
47
- conflicting_options: [:pathspec],
48
- optional: true),
49
- PantographCore::ConfigItem.new(key: :shell_escape,
50
- description: "Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path)",
51
- is_string: false,
52
- default_value: true,
53
- optional: true),
54
- # Deprecated
55
- PantographCore::ConfigItem.new(key: :pathspec,
56
- description: "The pathspec you want to add files from",
57
- type: String,
58
- conflicting_options: [:path],
59
- optional: true,
60
- deprecated: "Use `--path` instead")
61
- ]
62
- end
63
-
64
- def self.return_value
65
- nil
66
- end
67
-
68
- def self.authors
69
- ["4brunu", "antondomashnev"]
70
- end
71
-
72
- def self.is_supported?(platform)
73
- true
74
- end
75
-
76
- def self.example_code
77
- [
78
- 'git_add',
79
- 'git_add(path: "./version.txt")',
80
- 'git_add(path: ["./version.txt", "./changelog.txt"])',
81
- 'git_add(path: "./Frameworks/*", shell_escape: false)',
82
- 'git_add(path: ["*.h", "*.m"], shell_escape: false)',
83
- 'git_add(path: "./Frameworks/*", shell_escape: false)',
84
- 'git_add(path: "*.txt", shell_escape: false)'
85
- ]
86
- end
87
-
88
- def self.category
89
- :source_control
90
- end
91
- end
92
- end
93
- end
@@ -1,81 +0,0 @@
1
- module Pantograph
2
- module Actions
3
- module SharedValues
4
- PANT_CHANGELOG ||= :PANT_CHANGELOG # originally defined in ChangelogFromGitCommitsAction
5
- end
6
-
7
- class MakeChangelogFromJenkinsAction < Action
8
- def self.run(params)
9
- require 'json'
10
- require 'net/http'
11
-
12
- changelog = ""
13
-
14
- if Helper.ci? || Helper.test?
15
- # The "BUILD_URL" environment variable is set automatically by Jenkins in every build
16
- jenkins_api_url = URI(ENV["BUILD_URL"] + "api/json\?wrapper\=changes\&xpath\=//changeSet//comment")
17
- begin
18
- json = JSON.parse(Net::HTTP.get(jenkins_api_url))
19
- json['changeSet']['items'].each do |item|
20
- comment = params[:include_commit_body] ? item['comment'] : item['msg']
21
- changelog << comment.strip + "\n"
22
- end
23
- rescue => ex
24
- UI.error("Unable to read/parse changelog from jenkins: #{ex.message}")
25
- end
26
- end
27
-
28
- Actions.lane_context[SharedValues::PANT_CHANGELOG] = changelog.strip.length > 0 ? changelog : params[:fallback_changelog]
29
- end
30
-
31
- def self.description
32
- 'Generate a changelog using the Changes section from the current Jenkins build'
33
- end
34
-
35
- def self.details
36
- 'This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build.'
37
- end
38
-
39
- def self.available_options
40
- [
41
- PantographCore::ConfigItem.new(key: :fallback_changelog,
42
- description: 'Fallback changelog if there is not one on Jenkins, or it could not be read',
43
- optional: true,
44
- default_value: ''),
45
- PantographCore::ConfigItem.new(key: :include_commit_body,
46
- description: 'Include the commit body along with the summary',
47
- optional: true,
48
- is_string: false,
49
- default_value: true)
50
- ]
51
- end
52
-
53
- def self.output
54
- [
55
- ['PANT_CHANGELOG', 'The changelog generated by Jenkins']
56
- ]
57
- end
58
-
59
- def self.authors
60
- ['mandrizzle']
61
- end
62
-
63
- def self.is_supported?(platform)
64
- true
65
- end
66
-
67
- def self.example_code
68
- [
69
- 'make_changelog_from_jenkins(
70
- # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins
71
- fallback_changelog: "Bug fixes and performance enhancements"
72
- )'
73
- ]
74
- end
75
-
76
- def self.category
77
- :misc
78
- end
79
- end
80
- end
81
- end