Échec de la sortie de la console Jenkins

Je suis la directive comment signer apk Android avec Jenkins. J’ai paramétré le travail Jenkins avec KSTOREPWD et KEYPWD. Une partie de la configuration du travail de Jenkins (Build-> Execute shell) consiste à prendre ces parameters et à les stocker en tant que variables d’environnement:

export KSTOREPWD=${KSTOREPWD} export KEYPWD=${KEYPWD} ... ./gradlew assembleRelease 

Le problème est que lorsque la construction est terminée, n’importe qui peut accéder à la version “Sortie de console” et voir quels mots de passe ont été entrés. partie de cette sortie:

 08:06:57 + export KSTOREPWD=secretStorePwd 08:06:57 + KSTOREPWD=secretStorePwd 08:06:57 + export KEYPWD=secretPwd 08:06:57 + KEYPWD=secretPwd 

Donc, je voudrais supprimer écho avant la sortie export commandes d’ export et réactiver export commandes écho après export .

Par défaut, Jenkins lance le script Execute Shell avec set -x . Cela provoque l’écho de toutes les commandes

Vous pouvez saisir set +x avant toute commande pour remplacer temporairement ce comportement. Bien sûr, vous aurez besoin de set -x pour commencer à les afficher à nouveau.

Vous pouvez remplacer ce comportement pour l’ensemble du script en plaçant les éléments suivants en haut de l’étape de construction:
#!/bin/bash +x

Dans votre situation spécifique (en utilisant gradle et jenkins), vous pouvez également utiliser un paramètre de mot de passe, en utilisant le modèle de Gradle pour les variables d’environnement ( ORG_GRADLE_PROJECT_prop) . Gradle va ensuite définir une propriété prop sur votre projet.

Dans votre cas, cela ressemblerait à quelque chose comme ça

entrer la description de l'image ici

Et vous pouvez l’utiliser dans votre gradle.properties comme ceci

 signingConfigs { release { storeFile file(KEYSTORE) storePassword KSTOREPWD keyAlias ALIAS keyPassword KEYPWD } } 

BTW – Je recommande d’utiliser le plug-in de liaison des informations d’identification pour KEYSTORE entrer la description de l'image ici