我需要能够使用Jenkins工作构建我的apk的发布版本.
从阅读以下SO问题
如何使用Gradle创建一个发布签名的apk文件?
我知道我可以通过两种方式之一来做到这一点.要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在未提交给git的纯文本文件中,并存放在我的本地计算机上.
但是,在jenkins上运行构建作业时,这些都不会起作用.1)我无法获得用户输入,因为这可能是在半夜运行(即使用户在他们的机器上,我甚至不知道如何从cmd行获取用户输入)2)任何人都可以获得对该构建框的访问权限,可以通过cmd行或在该jenkins服务器上运行的另一个build.gradle作业捕获该文件的内容.
有谁知道无论如何我可以隐藏我的密码,但Jenkins的工作可以访问它?
谢谢
您可以使用Mask Password Plugin,它就是这样做的.或者EnvInject插件中包含相同的功能,并且迟早所有Jenkins项目都需要EnvInject插件(这可以做很多其他事情),所以不妨现在开始使用它.
安装EnvInject插件.
在Jenkins全局配置下,找到全局密码部分.
添加名称(这将是环境变量名称)和密码(将加星标****).
在作业配置下,找到构建环境部分.
选中标记将构建密码作为环境变量注入.
然后选中全局密码.
在任何构建步骤中,您现在可以使用$name
(如前所述)来引用密码,就像在纯文本中键入密码一样.
密码变量仅在作业执行时注入($name
在服务器的命令行上单独输入不会产生任何东西,并且像所有Jenkins变量一样,它不是持久的).
****
如果出现,作业控制台日志将显示而不是密码.
您可以为每个作业配置密码,而不是全局,以便其他作业无法使用它.
唯一的安全问题是,如果某人具有配置作业的管理权限,他们可以写入echo $name > secretpassword.txt
构建步骤,然后在工作区中查看该文件.但是你应该小心为谁分配管理权限.