giacgbj / sonar-swift

Open source Swift plugin for SonarQube

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Branch Status
master Build Status
develop Build Status

SonarQube Plugin for Swift

This is an open source initiative for Apple Swift language support in SonarQube. The structure of the plugin is based on the sonar-objective-c plugin.

Example iOS SonarQube dashboard

###Features

Feature Supported Details
Complexity YES Uses Lizard
Design NO
Documentation YES
Duplications YES
Issues YES Uses SwiftLint
Size YES
Tests YES Uses xcodebuild + xcpretty xcpretty
Code coverage YES Uses slather

###Download

Checkout the Releases page.

###Release history

####0.2.3

  • Fixed Lizard Sensor wrong file path

####0.2.2

  • Added support for .xcodeproj only projects (thanks to delannoyk)
  • Fix for Lizard Sensor to find indexed files (thanks to gretzki)
  • Got rid of confusion with commercial plugin in the update center

####0.2.1

  • SwiftLint 0.8 support (new rules added).

####0.2.0

####0.1.2

  • SwiftLint 0.5.1 support (new rules added).
  • Added sonar.swift.simulator key in sonar-project.properties to select destination simulator for running tests
  • SwiftLint scans source directories only

####0.1.1

  • SwiftLint 0.4.0 support (new rules added).

####0.1.0

  • Initial release.

###Prerequisites

###Installation of xcpretty with JUnit reports fix

At the time, xcpretty needs to be fixed to work with SonarQube.

To install the fixed version, follow those steps :

git clone https://github.com/Backelite/xcpretty.git
cd xcpretty
git checkout fix/duration_of_failed_tests_workaround
gem build xcpretty.gemspec
sudo gem install --both xcpretty-0.2.2.gem

###Installation (once for all your Swift projects)

  • Download the plugin binary into the $SONARQUBE_HOME/extensions/plugins directory
  • Copy run-sonar-swift.sh somewhere in your PATH
  • Restart the SonarQube server.

###Configuration (once per project)

  • Copy sonar-project.properties in your Xcode project root folder (along your .xcodeproj file)
  • Edit the sonar-project.properties file to match your Xcode iOS/MacOS project

The good news is that you don't have to modify your Xcode project to enable SonarQube!. Ok, there might be one needed modification if you don't have a specific scheme for your test target, but that's all.

###Analysis

  • Run the script run-sonar-swift.sh in your Xcode project root folder
  • Enjoy or file an issue!

###Update (once per plugin update)

  • Install the lastest plugin version
  • Copy run-sonar-swift.sh somewhere in your PATH

If you still have run-sonar-swift.sh file in each of your project (not recommended), you will need to update all those files.

###Contributing

Feel free to contribute to this plugin by issuing pull requests to this repository.

###License

SonarQube Plugin for Swift is released under the GNU LGPL 3 license.

About

Open source Swift plugin for SonarQube


Languages

Language:Java 89.6%Language:Shell 8.1%Language:Groovy 2.1%Language:Swift 0.3%