我想使用 Jenkins 环境变量作为凭据,如下面的代码所示,指定 Salesforce 登录用户名和密码,并将其传递给build.xml文件,以便我可以使用 Ant 迁移工具将代码部署到 Salesforce 平台。如何做到这一点?
詹金斯文件:
environment
{
SERVICE_CREDS=credentials('salesforce-creds')
}
stages
{
stage('Deploy')
{
steps
{
echo "Deploying"
bat 'ant -f ./build.xml CIDeploy'
}
}
}
构建.xml:
<project basedir="." xmlns:sf="antlib:com.salesforce">
<property environment="env"/>
<condition property="sf.username" value=""> <not> <isset property="sf.username"/> </not> </condition>
<condition property="sf.password" value=""> <not> <isset property="sf.password"/> </not> </condition>
<condition property="sf.deployroot" value=""> <not> <isset property="sf.deployroot"/> </not> </condition>
<!--##################################################### Deploy #########################################-->
<target name="CIDeploy">
<sf:deploy
username="$SERVICE_CREDS_USR"
password="$SERVICE_CREDS_PSW"
serverurl="https://login.salesforce.com"
deployRoot="src"/>
</target>
</project>
即使在登录到站点后,来自 Jenkins 控制台login.salesforce.com错误消息:
构建失败
C:\Program Files (x86(\Jenkins\workspace\abc\build.xml:26:用户名、密码、安全令牌无效或用户锁定。
Ant 允许您使用-D
通过命令行传递参数。检查如何将参数传递给 Ant 任务?以获得一些灵感。
尝试从您的凭据中读取它们(抱歉,自从我配置 Jenkins 以来已经有一段时间了(并作为ant -f ./build.xml -Dsf.username=joe@joe.com -Dsf.password=MySuperSecretPass!!!andOptionallySecurityToken
传递等。