Hi,
Pproduct: SonarQube developer edition
XCode Version: 13.0
Platform: iOS
Language: Swift
VCS: Azure
What am I trying to achieve
I used SonarQube Developer Edition. I want to push coverage report to sonarqube with azure pipeline. But I don’t know how to do. Please help.
I read [Coverage & Test Data] Generate Reports for Swift this document but how to add coverage task to azure pipeline with swift language
This is yml file.
variables:
- group: MobileAppsVariableGroup
trigger:
- qa
pool:
vmImage: 'macos-11'
demands: xcode
steps:
- task: CocoaPods@0
displayName: 'iOS CocoaPods installation'
- task: InstallAppleCertificate@2
displayName: 'iOS Apple certificate installation'
inputs:
certSecureFile: 'blablabla '
certPwd: 'blablabla
keychain: 'temp'
- task: InstallAppleProvisioningProfile@1
displayName: 'iOS Apple provisioning profile installation'
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: 'FordTruckProd.mobileprovision'
**- task: SonarQubePrepare@5**
** inputs:**
** SonarQube: 'SonarQubeDev'**
** scannerMode: 'CLI'**
** configMode: 'file'**
** extraProperties: |**
** coverageReportPaths: sonarqube-generic-coverage.xml**
- task: Xcode@5
displayName: 'iOS Xcode build'
inputs:
actions: 'build'
configuration: 'Release'
sdk: 'iphoneos'
xcWorkspacePath: 'FordTrucks.xcworkspace'
scheme: 'FordTrucks'
xcodeVersion: 'specifyPath'
xcodeDeveloperDir: '/Applications/Xcode_13.0.app'
packageApp: true
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
- task: Xcode@5
displayName: 'iOS Xcode test'
inputs:
actions: 'test'
configuration: 'Debug'
sdk: 'iphoneos'
xcWorkspacePath: 'FordTrucks.xcworkspace'
scheme: 'FordTrucks'
xcodeVersion: 'specifyPath'
xcodeDeveloperDir: '/Applications/Xcode_13.0.app'
packageApp: false
useXcpretty: true
publishJUnitResults: true
testRunTitle: 'FordTruckiOS'
destinationPlatformOption: 'iOS' # Optional. Options: default, iOS, tvOS, macOS, custom
destinationPlatform: 'iOS Simulator'
destinationTypeOption: 'simulators' # Optional. Options: simulators, devices
destinationSimulators: 'iPhone 12' # Optional. Default value: iPhone8 for Xcode 11 and iPhone 7 for other iOS projects; Apple TV for tvOS projects.
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
**- task: Bash@3**
** displayName: "Sonar Code Coverage"**
** inputs:**
** targetType: inline**
** script: ./xccov-to-sonarqube-generic.sh ./DerivedData/Logs/Test/*.xcresult/ > ./sonarqube-generic-coverage.xml**
**- task: SonarQubeAnalyze@5**
**- task: SonarQubePublish@5**
** inputs:**
** pollingTimeoutSec: '300'**
- task: CopyFiles@2
displayName: 'iOS copy ipa file to upload'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**/*.ipa'
TargetFolder: '$(build.artifactStagingDirectory)'
OverWrite: true
flattenFolders: true
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
displayName: 'iOS publish ipa to artifacts'
inputs:
PathtoPublish: '$(build.artifactStagingDirectory)'
condition: succeededOrFailed()