CODING 持续集成兼容的 Jenkins 版本?
目前,CODING 持续集成提供的公共构建节点使用 Jenkins 2.293 版本。
单引号和双引号用法差异是什么?
使用 CODING 持续集成时经常需要在 Jenkinsfile 内拼接字符串或使用环境变量作为参数,Jenkinsfile 中的单引号和双引号在使用时,会有些许差异,以下演示常用的 echo 与 sh 两个命令的差异。
pipeline {agent anyenvironment {MY_ENV = 'this is my env'}stages {stage('Test') {steps {script {def MY_ENV = 'define in script'echo "${env.MY_ENV}"// 输出内容为 this is my envecho "\\${env.MY_ENV}"// 输出内容为 ${env.MY_ENV}echo "${MY_ENV}"// 输出内容为 define in scriptecho '${MY_ENV}'// 输出内容为 ${MY_ENV}sh 'echo ${MY_ENV}'// 输出内容为 this is my envsh "echo ${MY_ENV}"// 输出内容为 define in scriptsh "echo ${env.MY_ENV}"// 输出内容为 this is my env}}}}}
echo 在使用单引号时,并不会解析里面的 $ 符号,而是直接输出原文;在使用双引号时,会打印出环境变量里的 MY_ENV。
sh 在使用单引号时,将原文当作我们平时在终端里 sh 的命令一样执行,所以可以打印出环境变量里的 MY_ENV。
持续集成的配置来源区别是什么?
在创建构建计划时选择使用 代码仓库中的 Jenkinsfile 与 静态配置的 Jenkinsfile 有以下区别:
选择使用代码仓库中的 Jenkinsfile 后,该文件将存储至代码仓库中。修改 Jenkinsfile 意味着需在代码仓库中提交修改记录,若修改持续集成的触发条件,还可以自动触发集成任务。
使用静态配置的 Jenkinsfile 后,该文件将不会存储在代码仓库中,修改 Jenkinsfile 不会更新代码仓库内容,执行构建时将统一使用静态配置,保障构建流程的一致性。
如何查看工作空间目录?
在持续集成的部署流程中添加执行 Shell 脚本步骤,并在其中添加 pwd 命令。持续集成运行后将输出工作空间目录。


如何自定义环境变量?
远程 SSH 执行命令时环境变量不生效怎么办?
由于在使用构建机连接远程 SSH 时使用了非交互非登录式连接,因此无法引用远程机器的
/etc/profile
、~/.bashrc
等文件配置中的环境变量。您可以参见以下示例,使用 export 命令再设置变量且用 &&
符号连续输入命令。export PATH=/opt/jdk1.8.0_281/bin:$PATH && java -version