在Jenkins控制台输出中回复

我正在遵循指南如何与Jenkins签署Android。 我已经参与了Jenkins与KSTOREPWD和KEYPWD的工作。 Jenkins的作业configuration(Build-> Execute shell)的一部分是取这些参数并将它们存储为环境variables:

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

问题是什么时候编译结束任何人都可以访问构build“控制台输出”,看看input了什么密码; 输出的一部分:

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

所以我想在export命令输出之前抑制回声,并在export命令后重新启用回声。

默认情况下,Jenkins使用set -x启动Execute Shell脚本。 这会导致所有命令被回显

您可以在任何命令之前键入set +x来暂时覆盖该行为。 当然你需要set -x才能开始再次显示它们。

您可以通过在构build步骤的顶部添加以下内容来覆盖整个脚本的此行为:
#!/bin/bash +x

在你的具体情况下(使用gradle和jenkins),你也可以使用一个密码参数,使用Gradle模式的环境variables ( ORG_GRADLE_PROJECT_prop) 。 Gradle将会在你的项目中设置一个prop属性。

在你的情况下,这看起来像这样

在这里输入图像说明

你可以在你的gradle.properties使用它

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

顺便说一句 – 我build议使用KEYSTORE的凭证绑定插件 在这里输入图像说明