J'ai le code suivant dans mon build.gradle
Le contenu de version.properties
Est:
buildVersion=1.2.3
$v
Pendant la construction de Gradle se présente sous la forme suivante: 1.2.3$artifactoryVersion
Dans la construction JENKINS se présente comme suit: 1.2.3 .1, 1.2.3 .2, 1.2.3 .x ... et ainsi de suite où le 4ème chiffre est Jenkins BUILD_NUMBER disponible pour évaluer le script de construction pendant la construction de Jenkins.MAIS, lorsque j'exécute ce build.gradle
Sur mon bureau où je n'ai pas de variable BUILD_NUMBER disponible ou définie dans mes variables ENVIRONMENT, j'obtiens une erreur disant que trim()
ne peut pas fonctionner avec la valeur null. (comme il n'y a pas de BUILD_NUMBER
pour la construction de bureau/locale).
J'essaie de trouver un moyen, c'est-à-dire.
Que dois-je coder dans mon script pour que, si BUILD_NUMBER
Ne soit pas disponible, alors, au lieu du traitement de génération dégradé échouant pour une erreur, il aurait défini jenkinsBuild = "0"
(Codé en dur) sinon, choisissez ce qu'il obtient pendant la construction de Jenkins.
Par exemple, dans Bash, nous définissons une variable var1=${BUILD_NUMBER:-"0"}
Qui définira var1
Sur un nombre Jenkins BUILD valide s'il est disponible et défini sur une valeur, sinon s'il s'agit de NULL, alors var1 = "0"
.
JE NE VEUX PAS que chaque développeur/utilisateur définisse ce BUILD_NUMBER
Dans un fichier de propriétés. Tout ce que je veux, c'est que si cette variable n'existe pas, alors le code devrait mettre "0"
Dans la variable jenkinsBuilds et ne pas avoir d'erreur lors de la génération de postes de travail. Je sais que pendant la construction de Jenkins, ça fonctionne bien.
// Build Script
def fname = new File( 'version.properties' )
Properties props = new Properties()
props.load( new FileInputStream( fname ) )
def v = props.get( 'buildVersion' )
def env = System.getenv()
def jenkinsBuild = env['BUILD_NUMBER'].trim()
if( jenkinsBuild.length() > 0 ) {
artifactoryVersion = "$v.$jenkinsBuild"
}
Tout ce dont vous avez besoin, c'est du code Java/Groovy standard:
def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0"
Le code ci-dessus utilise l'opérateur "elvis" de Groovy et constitue un raccourci pour le code suivant, qui utilise l'opérateur ternaire de Java:
def buildNumber = System.getenv("BUILD_NUMBER")
def jenkinsBuild = buildNumber != null ? buildNumber : "0"