环境变量相关
如何自定义环境变量
详细说明请参考此文档。
单引号和双引号用法差异是什么
使用 CODING 持续集成时经常需要在 Jenkinsfile 内拼接字符串或使用环境变量作为参数,Jenkinsfile 中的单引号和双引号在使用时,会有些许差异,以下演示常用的 echo 与 sh 两个命令的差异。
pipeline {
agent any
environment {
MY_ENV = 'this is my env'
}
stages {
stage('Test') {
steps {
script {
def MY_ENV = 'define in script'
echo "${env.MY_ENV}"
// 输出内容为 this is my env
echo "\${env.MY_ENV}"
// 输出内容为 ${env.MY_ENV}
echo "${MY_ENV}"
// 输出内容为 define in script
echo '${MY_ENV}'
// 输出内容为 ${MY_ENV}
sh 'echo ${MY_ENV}'
// 输出内容为 this is my env
sh "echo ${MY_ENV}"
// 输出内容为 define in script
sh "echo ${env.MY_ENV}"
// 输出内容为 this is my env
}
}
}
}
}
echo 在使用单引号时,并不会解析里面的 $ 符号,而是直接输出原文;在使用双引号时,会打印出环境变量里的 MY_ENV。
sh 在使用单引号时,将原文当作我们平时在终端里 sh 的命令一样执行,所以可以打印出环境变量里的 MY_ENV。
构建计划获取变量失败
在读取环境变量时失败,此时需检查流程配置中的文本编辑器中,引用该变量时是否采用双引号 " "
包裹。如果确认已使用双引号进行包裹,切换至“文本编辑器”中查看该变量是否有多余的引号。
例如编写了 ‘“${GIT_BRANCH}”‘,此时需要将额外的单引号删除,保存后重新进行构建。
如何解决 MissingPropertyException 报错
完整错误码:groovy.lang.MissingPropertyException: No such property: REPO_URL for class: WorkflowScript\r
此错误一般由没有注入环境变量,执行失败引起。错误码中将提示由哪个环境变量所引起,例如此提示为 REPO_URL
变量缺失。
远程 SSH 执行命令时环境变量不生效
由于在使用构建机连接远程 SSH 时使用了“非交互非登录式”连接,因此无法引用远程机器的 /etc/profile
、 ~/.bashrc
等文件配置中的环境变量。
你可以参考以下示例,使用 export 命令再设置变量且用 && 符号连续输入命令。
export PATH=/opt/jdk1.8.0_281/bin:$PATH && java -version
构建失败提示“解析环境变量异常”
大部分构建记录为正常,但偶尔出现“解析环境变量异常”错误。
这种情况通常由仓库授权问题导致。若构建计划使用的代码源为关联仓库,需要前往“代码仓库”→“关联仓库”中找到此仓库,取消关联后重新关联,再次重新触发构建任务。
若本文未能收录您实际遇见的问题,欢迎前往工单中心提交使用疑惑,我们将按照实际情况及时补充相关问题的处理方法。
报错 no such property:xxxx for class: WorkflowScript
原因:持续集成构建计划内容引用了变量 xxxx,例如 echo $xxxx ,但是构建计划并未设置该变量。导致找不到变量 xxxx 而报错。
解决方法:
- 如需使用该变量,请在设置构建计划的「变量与缓存」页签增加变量,具体操作可参考添加环境变量。
- 如无需使用该变量,请在构建计划中去掉对该变量的引用。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。