jenkins上的android build release apk,没有以纯文本格式存储我的密码

Rus*_*ler 7 android android-build apk jenkins

我需要能够使用Jenkins工作构建我的apk的发布版本.

从阅读以下SO问题

如何使用Gradle创建一个发布签名的apk文件?

我知道我可以通过两种方式之一来做到这一点.要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在未提交给git的纯文本文件中,并存放在我的本地计算机上.

但是,在jenkins上运行构建作业时,这些都不会起作用.1)我无法获得用户输入,因为这可能是在半夜运行(即使用户在他们的机器上,我甚至不知道如何从cmd行获取用户输入)2)任何人都可以获得对该构建框的访问权限,可以通过cmd行或在该jenkins服务器上运行的另一个build.gradle作业捕获该文件的内容.

有谁知道无论如何我可以隐藏我的密码,但Jenkins的工作可以访问它?

谢谢

Sla*_*lav 7

您可以使用Mask Password Plugin,它就是这样做的.或者EnvInject插件中包含相同的功能,并且迟早所有Jenkins项目都需要EnvInject插件(这可以做很多其他事情),所以不妨现在开始使用它.

在构建/构建后步骤中安全地使用密码

  • 安装EnvInject插件.
  • Jenkins全局配置下,找到全局密码部分.
  • 添加名称(这将是环境变量名称)和密码(将加星标****).
  • 作业配置下,找到构建环境部分.
  • 选中标记将构建密码作为环境变量注入.
  • 然后选中全局密码.

在任何构建步骤中,您现在可以使用$name(如前所述)来引用密码,就像在纯文本中键入密码一样.

  • 密码变量仅在作业执行时注入($name在服务器的命令行上单独输入不会产生任何东西,并且像所有Jenkins变量一样,它不是持久的).
  • ****如果出现,作业控制台日志将显示而不是密码.
  • 您可以为每个作业配置密码,而不是全局,以便其他作业无法使用它.

唯一的安全问题是,如果某人具有配置作业的管理权限,他们可以写入echo $name > secretpassword.txt构建步骤,然后在工作区中查看该文件.但是你应该小心为谁分配管理权限.