Jenkins dsl-运行时确定绑定
我是詹金斯dsl的核心人物。 我正在尝试将凭据设置为环境变量,以便在我的文件中使用它。 我首先确定要在步骤上下文中使用的凭据, 然后将其绑定到包装块中。 我遇到的问题是,包装器块在步骤块之前执行,因此创建了一个找不到凭据的错误。 我不确定如何以不同的方式设置这些值。 有什么想法吗? 添加了我的代码:Jenkins dsl-运行时确定绑定,jenkins,jenkins-job-dsl,Jenkins,Jenkins Job Dsl,我是詹金斯dsl的核心人物。 我正在尝试将凭据设置为环境变量,以便在我的文件中使用它。 我首先确定要在步骤上下文中使用的凭据, 然后将其绑定到包装块中。 我遇到的问题是,包装器块在步骤块之前执行,因此创建了一个找不到凭据的错误。 我不确定如何以不同的方式设置这些值。 有什么想法吗? 添加了我的代码: steps{ shell('if [ "$my-variable" == "new" ]; then\n\ cred="new"\n\ echo "set cred to new" \n\
steps{
shell('if [ "$my-variable" == "new" ]; then\n\
cred="new"\n\
echo "set cred to new" \n\
else\n\
cred="old"\n\
echo "set cred to old"\n\
fi;')
}
wrappers{
credentialsBinding{
usernamePassword('userVar', 'passwordVar', '${cred}')
}
}
steps {
shell(fab ${envName} start')
}
您的脚本中有两个问题 1) 构建包装器在任何构建步骤之前运行。DSL允许以任何顺序定义步骤和包装,但作业将始终在步骤之前运行包装 2) 您设置的任何shell变量仅在shell步骤中可见。Shell变量不向Jenkins公开 我认为不使用第一个shell步骤就可以解决这个问题,但我不确定您使用该shell步骤想要实现什么。也许你应该提出一个新问题,描述一下你试图解决的高层次问题