小编典典

android build在jenkins上发布apk,而无需以纯文本格式存储我的密码

jenkins

我需要能够使用Jenkins作业构建我的apk的发行版。

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

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

有谁知道我可以隐藏密码但让Jenkins作业可以访问它吗?

谢谢


阅读 252

收藏
2020-07-25

共1个答案

小编典典

您可以使用“掩码密码插件”来做到这一点。或EnvInject插件中包含相同的功能,并且所有Jenkins项目迟早都需要EnvInject插件(它可以做很多其他事情),因此不妨立即开始使用它。

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

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

现在,在任何构建步骤中,您都可以使用$name(如先前定义的那样)引用密码,就像您以纯文本形式键入密码一样。

  • 仅在作业执行时才注入password变量($name在服务器的命令行上键入本身不会产生任何结果,并且像所有Jenkins变量一样,它不是持久性的)。
  • ****如果显示,则作业控制台日志将显示而不是密码。
  • 您可以为每个作业而不是全局配置密码,以便其他作业不能使用它。

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

2020-07-25