GitVersion dans Jenkins sous Linux

Dans un article précédent, j’avais expliqué comment utiliser GitVersion dans Jenkins sous Windows. Celui-ci traitera du même sujet, sauf que cette fois ci c’est sur Linux que l’application fonctionnera.

Je rappelle que GitVersion est une application qui sert à la génération de version automatique à partir d’un dépôt Git. Jenkins est un outil d’intégration continue programmé en Java. Ces deux projets à code source ouvert sont tous deux hébergés sur GitHub.

Pour se simplifier la vie, nous allons utiliser un conteneur Docker Linux pour démarrer l’application GitVersion. Toutes les propriétés de GitVersion serviront à générer des variables d’environnement. Ces variables pourront par la suite être utilisées à n’importe quel endroit dans le fichier Jenkinsfile:

stage('Version') {
	agent {
		docker {
			image 'gittools/gitversion:4.0.1-linux-debian-netcoreapp2.1'
			args '--entrypoint=\'\''
		}
	}
	steps {
		// Génération du fichier gitversion.properties
		sh 'dotnet /app/GitVersion.dll /output buildserver'
		// Enregistrement des variables d'environnement du fichier gitversion.properties
		script {
			readFile('gitversion.properties').split("\n").each { line ->
				el = line.split("=")
				env."${el[0]}" = (el.size() > 1) ? "${el[1]}" : ""
			}
		}
	}
}

Maintenant que vous avez ces informations de version, vous pouvez les utiliser pour générer la version de votre logiciel automatiquement.