## Jenkins 变量### 简介Jenkins 变量是构建过程中使用的占位符,用于存储和传递信息。它们使我们能够创建更加灵活和可复用的流水线,并动态地配置构建行为。### 变量类型Jenkins 提供多种类型的变量,每种类型都有其特定的用途和来源:#### 1. 环境变量
由 Jenkins 系统提供,包含有关 Jenkins 环境的信息。
例如:`JOB_NAME`、`BUILD_NUMBER`、`WORKSPACE` 等。
可直接在 shell 脚本或其他构建步骤中使用。#### 2. 全局变量
在 Jenkins 全局配置中定义,对所有作业和节点可见。
用于存储通用的配置信息,例如:工具路径、凭据 ID 等。
通过 `${VARIABLE_NAME}` 访问。#### 3. 作业参数
在作业配置中定义,允许用户在触发构建时提供自定义值。
可以是字符串、布尔值、选择列表等类型。
通过 `${PARAM_NAME}` 访问。#### 4. 流水线变量
在 Jenkinsfile 中定义,仅在当前流水线运行时有效。
可以使用 `def`、`environment` 或 `parameters` 指令定义。
用于存储中间结果、配置信息或传递给其他阶段的参数。### 使用 Jenkins 变量#### 1. 访问变量
在 shell 脚本中,使用 `$VARIABLE_NAME` 或 `${VARIABLE_NAME}` 访问变量。
在 Pipeline 语法中,使用 `${VARIABLE_NAME}` 或 `env.VARIABLE_NAME` 访问变量。#### 2. 定义变量
全局变量:
在 Jenkins 管理页面 -> 系统配置 -> 全局属性 中定义。
作业参数:
在作业配置页面 -> General -> 参数化构建过程 中定义。
流水线变量:
使用 `def`、`environment` 或 `parameters` 指令在 Jenkinsfile 中定义。#### 3. 示例##### 3.1 在 shell 脚本中使用环境变量```bash echo "构建的项目名称:${JOB_NAME}" echo "当前构建的版本号:${BUILD_NUMBER}" ```##### 3.2 在 Jenkinsfile 中使用全局变量```groovy pipeline {agent anystages {stage('构建') {steps {sh "mvn clean install -Dsonar.host.url=${SONAR_HOST}"}}} } ```##### 3.3 在 Jenkinsfile 中使用作业参数```groovy pipeline {agent anyparameters {string(name: 'BRANCH_NAME', defaultValue: 'master', description: '要构建的分支名称')}stages {stage('构建') {steps {sh "git checkout ${BRANCH_NAME}"sh "mvn clean install"}}} } ```### 最佳实践
使用有意义的变量名,以便于理解。
避免在变量名中使用空格或特殊字符。
对敏感信息,例如密码,使用 Jenkins 凭据管理功能,并通过 ID 引用。
将通用的配置信息存储在全局变量中,以便于维护。
使用作业参数来提供构建时的灵活性。### 总结Jenkins 变量是创建灵活、可复用和可配置流水线的强大工具。通过理解不同类型的变量以及如何使用它们,可以显著提高构建效率和代码质量。
Jenkins 变量
简介Jenkins 变量是构建过程中使用的占位符,用于存储和传递信息。它们使我们能够创建更加灵活和可复用的流水线,并动态地配置构建行为。
变量类型Jenkins 提供多种类型的变量,每种类型都有其特定的用途和来源:
1. 环境变量* 由 Jenkins 系统提供,包含有关 Jenkins 环境的信息。* 例如:`JOB_NAME`、`BUILD_NUMBER`、`WORKSPACE` 等。* 可直接在 shell 脚本或其他构建步骤中使用。
2. 全局变量* 在 Jenkins 全局配置中定义,对所有作业和节点可见。* 用于存储通用的配置信息,例如:工具路径、凭据 ID 等。* 通过 `${VARIABLE_NAME}` 访问。
3. 作业参数* 在作业配置中定义,允许用户在触发构建时提供自定义值。* 可以是字符串、布尔值、选择列表等类型。* 通过 `${PARAM_NAME}` 访问。
4. 流水线变量* 在 Jenkinsfile 中定义,仅在当前流水线运行时有效。* 可以使用 `def`、`environment` 或 `parameters` 指令定义。* 用于存储中间结果、配置信息或传递给其他阶段的参数。
使用 Jenkins 变量
1. 访问变量* 在 shell 脚本中,使用 `$VARIABLE_NAME` 或 `${VARIABLE_NAME}` 访问变量。* 在 Pipeline 语法中,使用 `${VARIABLE_NAME}` 或 `env.VARIABLE_NAME` 访问变量。
2. 定义变量* **全局变量:** 在 Jenkins 管理页面 -> 系统配置 -> 全局属性 中定义。* **作业参数:** 在作业配置页面 -> General -> 参数化构建过程 中定义。* **流水线变量:** 使用 `def`、`environment` 或 `parameters` 指令在 Jenkinsfile 中定义。
3. 示例
3.1 在 shell 脚本中使用环境变量```bash echo "构建的项目名称:${JOB_NAME}" echo "当前构建的版本号:${BUILD_NUMBER}" ```
3.2 在 Jenkinsfile 中使用全局变量```groovy pipeline {agent anystages {stage('构建') {steps {sh "mvn clean install -Dsonar.host.url=${SONAR_HOST}"}}} } ```
3.3 在 Jenkinsfile 中使用作业参数```groovy pipeline {agent anyparameters {string(name: 'BRANCH_NAME', defaultValue: 'master', description: '要构建的分支名称')}stages {stage('构建') {steps {sh "git checkout ${BRANCH_NAME}"sh "mvn clean install"}}} } ```
最佳实践* 使用有意义的变量名,以便于理解。 * 避免在变量名中使用空格或特殊字符。 * 对敏感信息,例如密码,使用 Jenkins 凭据管理功能,并通过 ID 引用。 * 将通用的配置信息存储在全局变量中,以便于维护。 * 使用作业参数来提供构建时的灵活性。
总结Jenkins 变量是创建灵活、可复用和可配置流水线的强大工具。通过理解不同类型的变量以及如何使用它们,可以显著提高构建效率和代码质量。