我需要能够使用 Jenkins 作业构建我的 apk 的发行版本。
通过阅读以下SO问题
如何使用 Gradle 创建发布签名的 apk 文件? https://stackoverflow.com/questions/18328730/how-to-create-a-release-signed-apk-file-using-gradle?rq=1
我知道我可以通过以下两种方式之一来做到这一点。要么让用户在 cmd 提示符下输入密码,要么将我的密码详细信息存储在一个纯文本文件中,该文件不会提交到 git,并且位于我的本地计算机上。
不过,在詹金斯上运行构建作业时,这些都不起作用。 1)我无法获得用户输入,因为这可能在半夜运行(即使用户在他们的机器上,我什至不知道如何从命令行获取用户输入)2)任何可以获得对该构建框的访问权限,将能够通过 cmd 行或从该 jenkins 服务器上运行的另一个 build.gradle 作业来获取该文件的内容。
有谁知道我可以隐藏我的密码,但詹金斯工作可以访问它?
Thanks
您可以使用掩码密码插件,它就是这样做的。或者 EnvInject 插件中包含相同的功能,迟早所有 Jenkins 项目都会需要 EnvInject 插件(它可以做许多其他事情),所以不妨现在就开始使用它。
在构建/构建后步骤中安全地使用密码
- Install EnvInject 插件 https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin.
- Under 詹金斯全局配置, find 全局密码部分。
- Add a name(这将是环境变量名称)和password(将加星标****)。
- Under 作业配置, find 搭建环境部分。
- 复选标记将密码作为环境变量注入到构建中.
- 然后勾选全局密码.
在任何构建步骤中,您现在可以使用$name
(如前面所定义)来引用密码,就像您以纯文本形式键入密码一样。
- 密码变量仅在作业执行时注入(键入
$name
服务器的命令行本身不会产生任何东西,并且像所有 Jenkins 变量一样,它不是持久的)。
- 作业控制台日志将显示
****
而不是密码(如果出现)。
- 您可以为每个作业配置密码,而不是全局配置,以便其他作业无法使用它。
唯一的安全问题是,如果有人配置您的作业的管理权限,他们可以写echo $name > secretpassword.txt
进入构建步骤,然后查看工作区中的文件。但您应该小心向谁分配管理权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)