fastlane-plugin-code_static_analyzer 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31ca64424721af47394fb63b3f00532811b84bdf
4
- data.tar.gz: e12379d050bad5565564d5402ab6b7517b8594a9
3
+ metadata.gz: f27b577db79a18a272cb128f635addb0ac1d4740
4
+ data.tar.gz: 292c5593392ca861eb7915ce1cbdd5bc52f45e8d
5
5
  SHA512:
6
- metadata.gz: b7925823d710984f81d6b483aa41a010325475e68ecf9792fe6ce79a19e70de027170c7950d18565483b6ac16d6f29ef44b4a39b566cc2c687cd4d108c483b3b
7
- data.tar.gz: 5c3fde6b0c8e7179ca53ea4952ff8f1c7fdddc242d79e6d6a598e85f5c22f46fa7cf879d1f812e73ce096caf7ca1545f7c91ae11d916bdc288d1764fe4edac24
6
+ metadata.gz: be0c3524e9f856179ac50ef7116d22e1a9ca59e3eb6f7b223b789693d324c45e852d86f49d09c9950fa8c61bcdcc14d875adb668d2b10eb3aa9dcb551e306258
7
+ data.tar.gz: 11a075f75f5d5431ef10682cca0bb0f1ba8227f0f9e71a77af1dde540f5ae83bcc33fd8aaba73534a28bac8955d78d497aa456cb178bf274e199fdd200ee9472
data/README.md CHANGED
@@ -16,7 +16,8 @@ This plugins runs different Static Analyzers for checking your code on warnings,
16
16
  Each analyzer in this plugin generate separate report `codeAnalysResult_<name of analyzer>.xml` and
17
17
  save result status in shared values `<NAME>_ANALYZER_STATUS`: 0 - code is clear, any other value - code include warnings/errors.
18
18
  Finally you can check plugin return value (true='code is clear'/false) to decide what to do next. <br />
19
- All reports are generated in JUnit format for easier start-up at the CI servers.
19
+ All reports are generated in JUnit format for easier start-up at the CI servers.<br />
20
+ This plugin can be used in pair with CI static code analysis plugins. Check out the `Using CI plugins` section.
20
21
 
21
22
  ## Important
22
23
  - You can configure rubocop analyzer by creating configuration file `.rubocop.yml` in your project (more about rubocop configuration http://rubocop.readthedocs.io/en/latest/cops/)
@@ -25,7 +26,7 @@ All reports are generated in JUnit format for easier start-up at the CI servers.
25
26
  ### Specific for copy paste analyzer (CPD)
26
27
  - PMD have to be installed on your machine (http://pmd.sourceforge.net/snapshot/usage/installing.html)
27
28
  - [!]Pay attention on language parameter: if your code language is available in supported list you have to set this parameter.
28
-
29
+
29
30
  ## Actions
30
31
 
31
32
  `code_static_analyzer` - runs all configured analyzers together (Copy paste analyzer always runs).<br />
@@ -56,7 +57,8 @@ code_static_analyzer(
56
57
  xcode_project_name: 'path/to/TestProject',
57
58
  xcode_workspace_name: 'path/to/testWorkspace',
58
59
  xcode_targets: ['TPClientTarget','TPServerTarget'],
59
- ruby_files: 'fastlane/Fastfile'
60
+ ruby_files: 'fastlane/Fastfile',
61
+ disable_junit: 'all' # don't create any results in JUnit format
60
62
  )
61
63
  ````
62
64
  Parameter | Description
@@ -71,6 +73,7 @@ Parameter | Description
71
73
  `xcode_workspace_name`| *(optional)* Xcode workspace name in work directory. Set it if you use different project & workspace names
72
74
  `xcode_targets` | *(optional)* List of Xcode targets to inspect. By default used all targets which are available in project
73
75
  `ruby_files` | *(optional)* List of paths to ruby files to be inspected
76
+ `disable_junit` | *(optional)* List of analysers for which you want to disable results in JUnit format.<br />Supported analyzers: "xcodeWar", "rubocop", "CPD", "all"<br />By default all results will be created in JUnit format.
74
77
 
75
78
  ### `code_static_analyzer` other examples (full configuration):
76
79
  CPD:
@@ -93,7 +96,8 @@ code_static_analyzer(
93
96
  cpd_language: 'objectivec',
94
97
  cpd_files_to_inspect: %w('path/to/myFiles/' 'path/to/testFiles/'),
95
98
  cpd_files_to_exclude: %w('Pods' 'ThirdParty'),
96
- ruby_files: 'fastlane/Fastfile'
99
+ ruby_files: 'fastlane/Fastfile',
100
+ disable_junit: 'CPD' # results of rubocop analyzer - in JUnit format, CPD analyzer - not in JUnit format
97
101
  )
98
102
  ````
99
103
  CPD + Xcode project warnings:
@@ -110,24 +114,17 @@ code_static_analyzer(
110
114
  xcode_targets: ['TPClientTarget','TPServerTarget'],
111
115
  )
112
116
  ````
117
+ ## Using CI plugins
113
118
 
114
- ## Run tests for this plugin
115
-
116
- To run both the tests, and code style validation, run
117
-
118
- ```
119
- rake
120
- ```
121
-
122
- To automatically fix many of the styling issues, use
123
- ```
124
- rubocop -a
125
- ```
119
+ If you want to use CI static code analysis plugins pay attention on type of file which they use.
120
+ Commonly CI static code analysis plugins don't scan files in JUnit format, so you need to `disable usage of results in JUnit format` (especially for ruby analyzer).
121
+ After that each analyzer in this plugin will generate separate report(s):
122
+ CPD analyzer - `cpd.xml`; Ruby analyzer - `ruby.log`; Warning analyzer - `warnings_<target name>.log`
126
123
 
127
124
  ## Issues and Feedback
128
125
 
129
126
  - In some cases CPD can't recognize patterns in file/dir paths like `path/to/files/*.m`
130
- (about path you may read in CPD documentation: http://pmd.sourceforge.net/snapshot/usage/cpd-usage.html)<br />
127
+ (about path you may read in [CPD documentation](http://pmd.sourceforge.net/snapshot/usage/cpd-usage.html)).<br />
131
128
  For any other issues and feedback about this plugin, please submit it to this repository.
132
129
 
133
130
  ## Troubleshooting
@@ -59,7 +59,7 @@ module JunitParser
59
59
  end
60
60
 
61
61
  def self.construct_failure_mes(attributes, values)
62
- properties = xml_level(0).to_s
62
+ properties = ''
63
63
  attributes.each_with_index do |property, index|
64
64
  value = values[index]
65
65
  properties += format("#{xml_level(4)}%-18s: %s", property, value) unless value.nil?
@@ -104,34 +104,57 @@ module JunitParser
104
104
  def self.parse_xcode_log(file, project, is_warn)
105
105
  if is_warn
106
106
  error_text = ''
107
+ temp_testcase = ''
107
108
  File.open(file).each do |line|
108
- if line =~ /warning:|error:/
109
+ if line =~ /warning:|error:|BCEROR/
110
+ failure_type = get_failure_type(line)
109
111
  warning_params = line.split(':')
110
112
  if warning_params.count == 5
111
- error_text += construct_failure_mes(
112
- ['Error ClassType', 'Error in File', 'Error Line', 'Error Message'],
113
- [get_failure_type(warning_params[4]), warning_params[0].tr('<', '').tr('>', ''),
114
- "#{warning_params[1]}:#{warning_params[2]}", warning_params[4].tr("\n", '')]
113
+ error_text = construct_failure_mes(
114
+ ['Error ClassType', 'Error Message'],
115
+ [failure_type, warning_params[4].tr("\n", '')]
115
116
  )
117
+ testcase_name = project+':'+warning_params[0].tr('<', '').tr('>', '')+
118
+ ":#{warning_params[1]}:#{warning_params[2]}"
116
119
  else
117
- error_text += construct_failure_mes(
120
+ error_text = construct_failure_mes(
118
121
  ['Error ClassType', 'Error Message'],
119
- ['-W', line.tr("\n", '')]
122
+ [failure_type, line.tr("\n", '').gsub('warning:','')]
120
123
  )
124
+ testcase_name = project
125
+ testcase_name += ':project configuration' if line =~ /BCEROR/
126
+ file_info = check_for_file_info(warning_params)
127
+ testcase_name += ":#{file_info[0]}" unless file_info[0]==nil
128
+ testcase_name += ":#{file_info[1]}" unless file_info[1]==nil
121
129
  end
130
+ failures = add_failure('', '', error_text)
131
+ temp_testcase += add_failed_testcase(testcase_name, failures)
122
132
  end
123
- next unless line =~ /BCEROR/
124
- error_text += construct_failure_mes(['Error ClassType', 'Error in File', 'Error Message'],
125
- [get_failure_type(line), 'project configuration',
126
- line.tr("\n", '')])
127
133
  end
128
- failures = add_failure('', '', error_text)
129
- add_failed_testcase(project, failures)
134
+ temp_testcase
130
135
  else
131
136
  add_success_testcase(project)
132
137
  end
133
138
  end
134
-
139
+
140
+ def self.check_for_file_info(text_list)
141
+ result =[]
142
+ text_list.each_with_index do |text, i|
143
+ file = /([a-zA-Z0-9\.]*)?(\/[a-zA-Z0-9\._-]+)*(\.){1}[a-zA-Z0-9\._-]+/.match(text)
144
+ file = nil if file.to_s =~ /\.{2,}/
145
+ unless file==nil
146
+ next_value=text_list.to_a[i.to_i+1].nil? ? '' : text_list.to_a[i.to_i+1]
147
+ line = /[0-9]+/.match(next_value)
148
+ if line ==nil
149
+ result=[file]
150
+ else
151
+ result=[file, line]
152
+ end
153
+ break
154
+ end
155
+ end
156
+ result
157
+ end
135
158
  #####################################################
136
159
  # ============== Rubocop-json Parser ================
137
160
  #####################################################
@@ -24,7 +24,15 @@ module Fastlane
24
24
  xcode_project = params[:xcode_project_name]
25
25
  xcode_workspace = params[:xcode_workspace_name]
26
26
  xcode_targets = params[:xcode_targets]
27
- # use additional checks for optional parameters, but required in specific analyzer
27
+
28
+ # use additional checks for optional parameters, but required in specific analyzer
29
+ exclude_junit = params[:disable_junit]
30
+ if exclude_junit
31
+ exclude_junit.each do |exclude_from|
32
+ UI.error "disable_junit parameter is partly skipped: the analyzer '#{exclude_from}' is not supported. Supported analyzers: #{SUPPORTED_ANALYZER}, 'all'" unless SUPPORTED_ANALYZER.map(&:downcase).include? exclude_from.downcase or exclude_from == 'all'
33
+ end
34
+ exclude_junit = SUPPORTED_ANALYZER if exclude_junit[0] == 'all'
35
+ end
28
36
  analyzers.each do |analyzer|
29
37
  case analyzer.downcase
30
38
  when 'xcodewar'
@@ -43,8 +51,10 @@ module Fastlane
43
51
  sh "rm -rf #{clear_all_files}"
44
52
 
45
53
  # Run alyzers
54
+ use_junit = is_include(exclude_junit, "cpd") ? false : true
46
55
  status_cpd = Actions::CpdAnalyzerAction.run(
47
56
  result_dir: params[:result_dir],
57
+ use_junit_format: use_junit,
48
58
  tokens: params[:cpd_tokens],
49
59
  language: params[:cpd_language],
50
60
  cpd_files_to_inspect: params[:cpd_files_to_inspect],
@@ -53,24 +63,28 @@ module Fastlane
53
63
  analyzers.each do |analyzer|
54
64
  case analyzer.downcase
55
65
  when 'xcodewar'
66
+ use_junit = is_include(exclude_junit, "xcodewar") ? false : true
56
67
  if platform != "android"
57
68
  status_static = Actions::WarningAnalyzerAction.run(
58
69
  result_dir: params[:result_dir],
59
70
  xcode_project_name: xcode_project,
60
71
  xcode_workspace_name: xcode_workspace,
61
- xcode_targets: xcode_targets
72
+ xcode_targets: xcode_targets,
73
+ use_junit_format: use_junit
62
74
  )
63
75
  end
64
76
  when 'rubocop'
77
+ use_junit = is_include(exclude_junit, "rubocop") ? false : true
65
78
  status_rubocop = Actions::RubyAnalyzerAction.run(
66
79
  result_dir: params[:result_dir],
67
- ruby_files: params[:ruby_files]
80
+ ruby_files: params[:ruby_files],
81
+ use_junit_format: use_junit
68
82
  )
69
83
  end
70
84
  end
71
85
  # sh "rm -rf #{clear_temp_files}"
72
86
 
73
- create_analyzers_run_result("#{root_dir}#{params[:result_dir]}/") unless @xml_content.empty?
87
+ create_analyzers_run_result("#{root_dir}#{params[:result_dir]}/")
74
88
 
75
89
  if Actions::CodeStaticAnalyzerAction.status_to_boolean(status_cpd) &&
76
90
  Actions::CodeStaticAnalyzerAction.status_to_boolean(status_static) &&
@@ -127,6 +141,16 @@ module Fastlane
127
141
  end
128
142
  end
129
143
 
144
+ def self.is_include(list, value)
145
+ if list
146
+ list = list.map(&:downcase)
147
+ value = value.downcase
148
+ return (list.include? value) ? true : false
149
+ else
150
+ return false
151
+ end
152
+ end
153
+
130
154
  def self.is_pmd_installed
131
155
  @checked_pmd = false
132
156
  begin
@@ -243,6 +267,11 @@ module Fastlane
243
267
  UI.user_error!("The analyzer '#{run_analyzer}' is not supported. Supported analyzers: #{SUPPORTED_ANALYZER}, 'all'") unless SUPPORTED_ANALYZER.map(&:downcase).include? run_analyzer.downcase or run_analyzer == 'all'
244
268
  end
245
269
  end),
270
+ FastlaneCore::ConfigItem.new(key: :disable_junit,
271
+ env_name: "FL_CSA_DISABLED_JUNIT_RESULTS",
272
+ description: "List of analysers for which you want to disable results in JUnit format. Supported analyzers: #{SUPPORTED_ANALYZER}, 'all'",
273
+ optional: true,
274
+ type: Array),
246
275
  FastlaneCore::ConfigItem.new(key: :result_dir,
247
276
  env_name: "CSA_RESULT_DIR_NAME",
248
277
  description: "Directory's name for storing analysis results",
@@ -11,7 +11,6 @@ module Fastlane
11
11
  UI.header 'CPD analyzer' if Actions::CodeStaticAnalyzerAction.run_from_main_action
12
12
  Actions::CodeStaticAnalyzerAction.is_pmd_installed unless Actions::CodeStaticAnalyzerAction.checked_pmd
13
13
  work_dir = Actions::CodeStaticAnalyzerAction.work_dir
14
-
15
14
  # checking files for analysing
16
15
  files_to_exclude = params[:cpd_files_to_exclude]
17
16
  files_to_inspect = params[:cpd_files_to_inspect]
@@ -22,7 +21,7 @@ module Fastlane
22
21
  # prepare script and metadata for saving results
23
22
  result_dir_path = "#{work_dir}#{params[:result_dir]}"
24
23
  FileUtils.mkdir_p(result_dir_path) unless File.exist?(result_dir_path)
25
- temp_result_file = "#{result_dir_path}/temp_copypaste.xml"
24
+ temp_result_file = "#{result_dir_path}/cpd.xml"
26
25
  result_file = "#{result_dir_path}/codeAnalysResults_cpd.xml"
27
26
  tokens = params[:tokens]
28
27
  files = Actions::CodeStaticAnalyzerAction.add_root_path(work_dir, files_to_inspect, true)
@@ -52,9 +51,12 @@ module Fastlane
52
51
  status = 43
53
52
  else
54
53
  status = 0 if File.read(temp_result_file).empty?
55
- xml_content = JunitParser.parse_xml(temp_result_file)
56
- junit_xml = JunitParser.add_testsuite('copypaste', xml_content)
57
- JunitParser.create_junit_xml(junit_xml, result_file)
54
+ if params[:use_junit_format]
55
+ UI.message 'CPD analyzer generates result in JUnit format'
56
+ xml_content = JunitParser.parse_xml(temp_result_file)
57
+ junit_xml = JunitParser.add_testsuite('copypaste', xml_content)
58
+ JunitParser.create_junit_xml(junit_xml, result_file)
59
+ end
58
60
  end
59
61
  Actions.lane_context[SharedValues::CPD_ANALYZER_STATUS] = status
60
62
  end
@@ -83,6 +85,12 @@ module Fastlane
83
85
  optional: true,
84
86
  type: String,
85
87
  default_value: 'artifacts'),
88
+ FastlaneCore::ConfigItem.new(key: :use_junit_format,
89
+ env_name: "FL_CPD_ANALYZER_USE_JUNIT_RESULTS",
90
+ description: "Generate results in JUnit format.",
91
+ optional: true,
92
+ type: BOOL,
93
+ default_value: true),
86
94
  FastlaneCore::ConfigItem.new(key: :tokens,
87
95
  env_name: "FL_CPD_ANALYZER_TOKENS",
88
96
  description: "The min number of words in code that is detected as copy paste",
@@ -18,10 +18,15 @@ module Fastlane
18
18
  # prepare script and metadata for saving results
19
19
  result_dir_path = "#{work_dir}#{params[:result_dir]}"
20
20
  FileUtils.mkdir_p(result_dir_path) unless File.exist?(result_dir_path)
21
- temp_result_file = "#{result_dir_path}/temp_ruby.json"
22
21
  result_file = "#{result_dir_path}/codeAnalysResults_ruby.xml"
23
22
  files = Actions::CodeStaticAnalyzerAction.add_root_path(work_dir, files_to_inspect, true)
24
- run_script = "bundle exec rubocop -f j -a #{files}"
23
+ if params[:use_junit_format]
24
+ temp_result_file = "#{result_dir_path}/ruby.json"
25
+ run_script = "bundle exec rubocop -f j -a #{files}"
26
+ else
27
+ temp_result_file = "#{result_dir_path}/ruby.log"
28
+ run_script = "bundle exec rubocop -a #{files}"
29
+ end
25
30
  run_script_path = File.join CodeStaticAnalyzer::ROOT, "assets/run_script.sh"
26
31
  run_script = "#{run_script_path} \"#{run_script}\" '#{temp_result_file}'"
27
32
  # use analyzer
@@ -40,9 +45,12 @@ module Fastlane
40
45
  status = 43
41
46
  else
42
47
  status = 0 if File.read(temp_result_file).empty?
43
- xml_content = JunitParser.parse_json(temp_result_file)
44
- junit_xml = JunitParser.add_testsuite('rubocop', xml_content)
45
- JunitParser.create_junit_xml(junit_xml, result_file)
48
+ if params[:use_junit_format]
49
+ UI.message 'Ruby analyzer generates result in JUnit format'
50
+ xml_content = JunitParser.parse_json(temp_result_file)
51
+ junit_xml = JunitParser.add_testsuite('rubocop', xml_content)
52
+ JunitParser.create_junit_xml(junit_xml, result_file)
53
+ end
46
54
  end
47
55
  Actions.lane_context[SharedValues::RUBY_ANALYZER_STATUS] = status
48
56
  end
@@ -76,7 +84,13 @@ module Fastlane
76
84
  env_name: "FL_RUBY_ANALYZER_FILES_TO_INSPECT",
77
85
  description: "List of path (relative to work directory) to ruby files to be inspected",
78
86
  optional: true,
79
- type: Array)
87
+ type: Array),
88
+ FastlaneCore::ConfigItem.new(key: :use_junit_format,
89
+ env_name: "FL_RUBY_ANALYZER_USE_JUNIT_RESULTS",
90
+ description: "Generate results in JUnit format.",
91
+ optional: true,
92
+ type: BOOL,
93
+ default_value: true)
80
94
  ]
81
95
  end
82
96
 
@@ -31,7 +31,7 @@ module Fastlane
31
31
 
32
32
  status_static_arr = []
33
33
  xml_content = ''
34
- temp_result_file = "#{result_dir_path}/temp_warnings.log"
34
+ # temp_result_file = "#{result_dir_path}/warnings.log"
35
35
  result_file = "#{result_dir_path}/codeAnalysResults_warning.xml"
36
36
 
37
37
  # use analyzer and collect results
@@ -39,6 +39,7 @@ module Fastlane
39
39
  project_workspace = workspace if is_workspace
40
40
  Actions::CodeStaticAnalyzerAction.start_xml_content unless Actions::CodeStaticAnalyzerAction.run_from_main_action
41
41
  targets.each do |target|
42
+ temp_result_file = "#{result_dir_path}/warnings_#{target}.log"
42
43
  Formatter.xcode_format(target)
43
44
  run_script = "#{run_script_path} #{project_workspace} #{target} '#{temp_result_file}' #{is_workspace}"
44
45
  FastlaneCore::CommandExecutor.execute(command: run_script.to_s,
@@ -52,7 +53,7 @@ module Fastlane
52
53
  if Dir.glob(temp_result_file).empty?
53
54
  Actions::CodeStaticAnalyzerAction.add_xml_content("#{result_dir_path}/", 'iOS Warning', temp_result_file, '')
54
55
  Actions::CodeStaticAnalyzerAction.create_analyzers_run_result("#{result_dir_path}/") unless Actions::CodeStaticAnalyzerAction.run_from_main_action
55
- status_static_arr.push(1)
56
+ status_static_arr.push(2)
56
57
  else
57
58
  file = File.read(temp_result_file)
58
59
  UI.important "wrong profiles. Code isn't checked" if file =~ /BCEROR/
@@ -62,14 +63,17 @@ module Fastlane
62
63
  else
63
64
  status_static_arr.push(0)
64
65
  end
65
- xml_content += JunitParser.parse_xcode_log(temp_result_file, target, is_warnings)
66
+ xml_content += JunitParser.parse_xcode_log(temp_result_file, target, is_warnings) if params[:use_junit_format]
66
67
  end
67
68
  end
68
69
 
69
70
  # prepare results
70
- unless Dir.glob(temp_result_file).empty?
71
- junit_xml = JunitParser.add_testsuite('xcode warnings', xml_content)
72
- JunitParser.create_junit_xml(junit_xml, result_file)
71
+ if params[:use_junit_format]
72
+ UI.message 'Warning analyzer generates results in JUnit format'
73
+ unless status_static_arr.include? '2'
74
+ junit_xml = JunitParser.add_testsuite('xcode warnings', xml_content)
75
+ JunitParser.create_junit_xml(junit_xml, result_file)
76
+ end
73
77
  end
74
78
  status = if status_static_arr.any? { |x| x > 0 }
75
79
  1
@@ -98,29 +102,35 @@ module Fastlane
98
102
  # Define all options your action supports.
99
103
  [
100
104
  FastlaneCore::ConfigItem.new(key: :result_dir,
101
- env_name: "FL_WARNING_ANALYZER_RESULT_DIR",
102
- description: "Directory's name for storing analysis results",
103
- optional: true,
104
- type: String,
105
- default_value: 'artifacts'),
105
+ env_name: "FL_WARNING_ANALYZER_RESULT_DIR",
106
+ description: "Directory's name for storing analysis results",
107
+ optional: true,
108
+ type: String,
109
+ default_value: 'artifacts'),
110
+ FastlaneCore::ConfigItem.new(key: :use_junit_format,
111
+ env_name: "FL_WARNING_ANALYZER_USE_JUNIT_RESULTS",
112
+ description: "Generate results in JUnit format.",
113
+ optional: true,
114
+ type: BOOL,
115
+ default_value: true),
106
116
  FastlaneCore::ConfigItem.new(key: :xcode_project_name,
107
- env_name: "FL_WARNING_ANALYZER_PROJECT_NAME",
108
- description: "Xcode project name in work directory",
109
- optional: false,
110
- type: String,
111
- verify_block: proc do |value|
112
- UI.user_error!("No project name for WarningAnalyzerAction given, pass using `xcode_project_name` parameter") unless value and !value.empty?
113
- end),
117
+ env_name: "FL_WARNING_ANALYZER_PROJECT_NAME",
118
+ description: "Xcode project name in work directory",
119
+ optional: false,
120
+ type: String,
121
+ verify_block: proc do |value|
122
+ UI.user_error!("No project name for WarningAnalyzerAction given, pass using `xcode_project_name` parameter") unless value and !value.empty?
123
+ end),
114
124
  FastlaneCore::ConfigItem.new(key: :xcode_workspace_name,
115
- env_name: "FL_WARNING_ANALYZER_WORKSPACE_NAME",
116
- description: "Xcode workspace name in work directory. Set it if you use different project & workspace names",
117
- optional: true,
118
- type: String),
125
+ env_name: "FL_WARNING_ANALYZER_WORKSPACE_NAME",
126
+ description: "Xcode workspace name in work directory. Set it if you use different project & workspace names",
127
+ optional: true,
128
+ type: String),
119
129
  FastlaneCore::ConfigItem.new(key: :xcode_targets,
120
- env_name: "FL_WARNING_ANALYZER_TARGETS",
121
- description: "List of Xcode targets to inspect. By default used all project targets",
122
- optional: true,
123
- type: Array)
130
+ env_name: "FL_WARNING_ANALYZER_TARGETS",
131
+ description: "List of Xcode targets to inspect. By default used all project targets",
132
+ optional: true,
133
+ type: Array)
124
134
  ]
125
135
  end
126
136
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module CodeStaticAnalyzer
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-code_static_analyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olga Kniazska
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-10 00:00:00.000000000 Z
11
+ date: 2017-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: crack