在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
的凭证绑定插件