SonarQube Update Version 4.2 vers 4.3

De EjnTricks

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Download-icon.png Téléchargement et installation

#sudo wget -P /tmp http://downloads.sonarsource.com/sonarqube/sonarqube-4.3.zip
#sudo unzip -d /tmp /tmp/sonarqube-4.3.zip


Icon-Configuration-Settings.png Déploiement

La mise en place de l'application s'inspire de ce qui était préalablement réalisé par script ANT.

Il faut dans un premier temps copier l'application sous le répertoire webapps de Tomcat.

#sudo service tomcat7 stop
#sudo rm -rf /var/lib/tomcat7/webapps/sonar*
#sudo mv /tmp/sonarqube-4.3/web /var/lib/tomcat7/webapps/sonar
#sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/webapps/sonar


Icon-database.png Driver base de données

Plusieurs drivers sont fournis avec la distribution. Dans les précédentes versions, tous les drivers étaient copiés dans le répertoire WEB-INF/lib de l'application. Mais il suffit de choisir le driver en fonction de la base de données utilisée. Dans le cadre de cet article, MySql est utilisé.

#sudo cp /tmp/sonarqube-4.3/extensions/jdbc-driver/mysql/*.jar /var/lib/tomcat7/webapps/sonar/WEB-INF/lib/
#sudo chown tomcat7:tomcat7 /var/lib/tomcat7/webapps/sonar/WEB-INF/lib/*.jar

A noter, le driver doit être disponible dans le répertoire WEB-INF et dans l'arborescence extensions/jdbc-driver dans l'emplacement défini par SONAR_HOME.


Update icon.png Plugin-icon.png Plugins

Des plugins principaux et complémentaires sont disponibles dans la distribution. Les premiers doivent être disponibles le répertoire lib/core-plugins. Les seconds doivent être déposés dans extensions/downloads et seront installés lors du démarrage, si ils n'ont pas été déjà mis en place comme dans le cas de la mise à jour en 4.1.

#sudo rm -rf /var/opt/sonar/extensions/jdbc-driver
#sudo rm -f /var/opt/sonar/lib/core-plugins/*.jar
#sudo cp -p -R /tmp/sonarqube-4.3/extensions/jdbc-driver /var/opt/sonar/extensions/jdbc-driver
#sudo cp -p /tmp/sonarqube-4.3/lib/core-plugins/*.jar /var/opt/sonar/lib/core-plugins/
#sudo chown -R tomcat7:tomcat7 /var/opt/sonar/extensions/jdbc-driver
#sudo chown tomcat7:tomcat7 /var/opt/sonar/lib/core-plugins/*.jar

Si nécessaire, il faut vérifier les version des plugins dans le répertoire /var/opt/sonar/extensions/plugins. Et si la version est inférieure à celle des plugins de la distribution, il faut les placer dans le répertoire /var/opt/sonar/extensions/downloads/.

#sudo cp -p /tmp/sonarqube-4.3/lib/bundled-plugins/*.jar /var/opt/sonar/extensions/downloads/
#sudo chown tomcat7:tomcat7 /var/opt/sonar/extensions/downloads/*.jar

Suite à l'installation de la version 4.2, ces plugins étaient plus récents que ceux disponibles dans la distribution, qui contient également des versions obsolètes. Ces dernières exécutions ne sont donc pas réaliées.


Icon-database-process.png Mise à jour de la base

Pour cette version, une mise à jour de la base de données est nécessaire, ce qui est indiqué dans la trace d'exécution de Tomcat.

Database must be upgraded. Please browse /setup

Celle-ci se déclenche en accédant à l'URL http://SERVER/sonar/setup.


Bug-icon.png Erreurs

Suite à l'installation de cette version, la consultation des profiles provoquent une erreur avec le message suivant dans la trace logs/sonar.log.

2015.08.28 00:07:34 ERROR [o.s.s.ui.JRubyFacade]  Fail to render: http://www.dev.jouvinio.net/sonar/rules_configuration/index/7
undefined method `inject' for nil:NilClass
        On line #52 of app/views/rules_configuration/index.html.erb

    49:       </div>
    50:       <div class="rule-search top">
    51:         <%= message('rules_configuration.repository') -%>
52: <%= dropdown_tag "repositories", options_for_select(@select_repositories, @repositories), { 53:  :show_search_box => true, 54:  :width => '120px', 55:  :placeholder => message('any') gems/gems/actionpack-2.3.15/lib/action_view/helpers/form_options_helper.rb:292:in `options_for_select' app/views/rules_configuration/index.html.erb:52:in `block_called_from_erb?'

Cette anomalie est annoncée fixée dans la version 4.3.1, comme indiqué dans le ticket 5335. Un hot fix est disponible en exécutant une requête SQL.

mysql> UPDATE rules SET characteristic_id=NULL, remediation_function=NULL, remediation_coeff=NULL, remediation_offset=NULL WHERE characteristic_id IS NOT NULL;
Query OK, 661 rows affected (0,07 sec)
Rows matched: 661  Changed: 661  Warnings: 0

Un redémarrage du serveur est nécessaire. Tant qu'il n'est pas réalisé, un avertissement peut être affiché sur la page d'accueil.

Only offset must be set on DebtRemediationFunction{type=CONSTANT_ISSUE, coefficient=1h, offset=}


Configuration-icon.png Affectation Quality Gates

Cette version introduit la notion de Quality Gate, permet de donner des seuils d'acceptation sur différentes métriques. Le respect de ces seuils est représenté par une icône sur la liste des projets.

Cependant, après une analyse de projet l'icône disparait. En effet, aucun projet n'est associé à un profile.

Default-icon.png Affectation par défaut

Dans la page Quality Gates, il faut sélectionner le profile à appliquer par défaut.


Puis, il faut cliquer sur le bouton Set as default.


Ainsi ce profile sera appliqué par défaut au projet.

Project-icon.png Affectation par projet

Il est possible de surcharger l'affectation par défaut au niveau des projets. Sur la page Quality Gates, il faut sélectionner un profile puis les projets devant y être associés, en cochant la case sur la ligne de ceux-ci. Les projets sont disponibles dans l'onglet Without et il est possible de filtrer la liste.