- Update version spec in
Dockerfile
,helm/Chart.yaml
andhelm/values.yaml
with the new version of SonarQube - Update external plugins in the config.json with latest versions listed in their respective repository
/releases/
url - Update profile versions based on the internal plugin versions in the config.json
- Obtain the base version numbers from the vanilla SonarQube image directory
/opt/sonarqube/lib/extensions
, excluding build number - Update the configuration rules version number
rules_version
if the rules have been changed
- Obtain the base version numbers from the vanilla SonarQube image directory
- Check for any runtime errors and warnings in the container logs
- Create new version tag on GitHub, following semantic versioning as:
MAJOR.MINOR.PATCH
- Build and push new container images to Docker Hub
ictu/sonar
, with the docker release GitHub action - Push the updated helm chart as OCI artifact to Docker Hub
ictu/ictu-sonarqube
, with the helm release GitHub action - Update the
CHANGELOG.md
with new version information and move[Unreleased]
items to new version section - Update the Docker Hub overview pages if
README.md
content has changed
Add the url of the plugin jar-file to be installed to the config.json value of plugins
.
Modify the config.json value of profiles
and add a key (language as profile name) with value dictionary, such as:
"yaml": {
"plugin_name": "sonar-ansible-plugin",
"plugin_external": true,
"version": "ansible-profile-v2.5.1"
},
The parameters are:
(key)
: language (internal SonarQube language identifier)plugin_name
: name of the plugin to be used for this profileplugin_external
: true for external plugin, false (default) when it is contained in the base container imageversion
: profile version string (based on the plugin version)
In order to make the importing of existing profiles easier, use the transformation profile_backup_transform.xslt
.
Go to the profiles page in your SonarQube instance, backup a profile to an xml file and transform it.
Modify the corresponding config.json value of rules[language]
.
Each entry represents a rule to be activated or deactivated and has the following syntax: (operation)(ruleId)#(comment)
operation
:+
activates a rule;-
deactivates a ruleruleId
: SonarQube rule identifier
Example:
+csharpsquid:S104 # NCSS; used by Quality-time
To (de)activate groups of rules by type use this syntax:
(operation)types=(comma,delimited,list,of,types)#(comment)
The following types are available:
CODE_SMELL
BUG
VULNERABILITY
SECURITY_HOTSPOT
Example:
+types=SECURITY_HOTSPOT,VULNERABILITY # Enable these types by default