Skip to content

Commit d57cd5d

Browse files
author
Alexey Alter-Pesotskiy
committed
Update Sonarfile
1 parent 0725263 commit d57cd5d

File tree

2 files changed

+33
-33
lines changed

2 files changed

+33
-33
lines changed

fastlane/Sonarfile

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,50 @@
22

33
desc 'Get code coverage report and run complexity analysis for Sonar'
44
lane :sonar_upload do
5+
sonar_args = ''
56
version_number = get_version_number(
67
xcodeproj: 'StreamChatSwiftUI.xcodeproj',
78
target: 'StreamChatSwiftUI'
89
)[/\d+\.\d+\.\d/]
910

10-
slather
11+
unless Dir.glob('test_output/*.xcresult').empty?
12+
slather
13+
lizard(
14+
source_folder: './Sources/',
15+
language: 'swift',
16+
export_type: 'xml',
17+
report_file: 'reports/lizard.xml'
18+
)
19+
sonar_args = '-Dsonar.coverageReportPaths="reports/sonarqube-generic-coverage.xml" ' \
20+
'-Dsonar.swift.lizard.report="reports/lizard.xml"'
21+
end
1122

12-
lizard(
13-
source_folder: './Sources/',
14-
language: 'swift',
15-
export_type: 'xml',
16-
report_file: 'reports/lizard.xml'
17-
)
23+
options = sonar_options(sonar_args: sonar_args, version_number: version_number)
24+
sonar(options)
1825

19-
if ENV['GITHUB_EVENT_NAME'] == 'pull_request'
20-
sonar(
21-
sonar_login: ENV['SONAR_TOKEN'],
22-
pull_request_branch: ENV['GITHUB_HEAD_REF'],
23-
pull_request_base: ENV['GITHUB_BASE_REF'],
24-
pull_request_key: ENV['PR_NUMBER'],
25-
project_version: version_number
26-
)
27-
else
28-
branch = ENV['BRANCH_NAME'] || git_branch
26+
next if sonar_args.empty? || ENV['GITHUB_EVENT_NAME'] == 'pull_request' || sonar_branch !~ /main|develop/
2927

30-
sonar(
31-
sonar_login: ENV['SONAR_TOKEN'],
32-
branch_name: branch,
33-
project_version: version_number
34-
)
28+
slack_sonarcloud_metrics(version_number: version_number)
29+
end
30+
31+
desc 'Gets Sonar options'
32+
private_lane :sonar_options do |options|
33+
default_options = { sonar_login: ENV['SONAR_TOKEN'], sonar_runner_args: options[:sonar_args] }
3534

36-
case branch.to_sym
37-
when :main
38-
slack_sonarcloud_metrics(new_period: version_number, branch: branch)
39-
when :develop
40-
slack_sonarcloud_metrics(branch: branch)
41-
else
42-
UI.message("Sonar MetricKit ignores branch: #{branch}")
43-
end
35+
if ENV['GITHUB_EVENT_NAME'] == 'pull_request'
36+
default_options.merge(pull_request_branch: ENV['GITHUB_HEAD_REF'],
37+
pull_request_base: ENV['GITHUB_BASE_REF'],
38+
pull_request_key: ENV['PR_NUMBER'])
39+
else
40+
default_options.merge(branch_name: sonar_branch, project_version: options[:version_number])
4441
end
4542
end
4643

44+
desc 'Gets Sonar branch'
45+
private_lane :sonar_branch do
46+
ENV['BRANCH_NAME'] || git_branch
47+
end
48+
4749
desc 'Creates a report in Slack with SonarCloud analysis details'
4850
private_lane :slack_sonarcloud_metrics do |options|
4951
project_key = 'GetStream_stream-chat-swiftui'
@@ -52,7 +54,7 @@ private_lane :slack_sonarcloud_metrics do |options|
5254
quality_gate: true,
5355
branch: options[:branch]
5456
)
55-
new_period = options[:new_period] || options[:branch]
57+
new_period = sonar_branch == 'main' ? options[:version_number] : sonar_branch
5658
new_coverage = metrics[:new_coverage].to_f.round(2)
5759
new_duplication_density = metrics[:new_duplicated_lines_density].to_f.round(2)
5860
vulnerabilities = metrics[:security_hotspots].to_i + metrics[:vulnerabilities].to_i

sonar-project.properties

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ sonar.host.url=https://sonarcloud.io
44
sonar.organization=getstream
55
sonar.sourceEncoding=UTF-8
66
sonar.language=swift
7-
sonar.coverageReportPaths=reports/sonarqube-generic-coverage.xml
8-
sonar.swift.lizard.report=reports/lizard.xml
97
sonar.inclusions=Sources/**/*.swift
108
sonar.exclusions=Sources/**/*_Vendor.swift, Sources/**/Generated/*.swift
119

0 commit comments

Comments
 (0)