Jenkins环境变量、参数及groovy脚本使用介绍。
这是系列中的第三篇文章 使用 Jenkins 将 Django 应用程序部署到 AWS EC2 实例。 Jenkins的温和指南。 在本文中,我们将介绍如何在 Jenkins 中使用变量和参数以及如何使用 groovy 脚本。我们将使用与以前相同的项目。您需要事先阅读过之前的文章。 1.如何在 JenkinsFile 中配置和使用变量。 在编写 JenkinsFile 管道脚本时,您可能需要注入和
这是系列中的第三篇文章 使用 Jenkins 将 Django 应用程序部署到 AWS EC2 实例。 Jenkins的温和指南。
在本文中,我们将介绍如何在 Jenkins 中使用变量和参数以及如何使用 groovy 脚本。我们将使用与以前相同的项目。您需要事先阅读过之前的文章。
1.如何在 JenkinsFile 中配置和使用变量。
在编写 JenkinsFile 管道脚本时,您可能需要注入和使用一些动态值,从而避免管道中硬编码值的麻烦,因此需要环境变量。
Jenkins 环境变量是一个全局变量,通过 env 变量公开并用于 Jenkins 管道和 Jenkinsfile 文件 /Pipeline 中的任何位置。在 env 变量中存储为环境变量的任何值都是字符串类型。
Jenkins 已经有一个可以在管道中使用的预定义环境变量列表。通过在浏览器上访问以下 URL,可以找到完整的变量列表。
${JENKINS_IP}/env-vars.html/
// Substitute JENKINS_IP with the IP address of the digital ocean droplet hosting our Jenkins server.
您应该会看到一个包含所有 Jenkins 环境变量的页面。
现在您可以访问环境变量列表,现在让我们在 JenkinsFile 中访问它们。
要访问 JenkinsFile 中的环境变量,我们使用env
对象。对 Jenkins 管道环境变量的引用是通过以下方式将${}
包围起来的:${env.ENV_VARIABLE}
现在让我们在 JenkinsFile 中添加一个 init 阶段,我们可以在其中看到它的使用情况。
stage('Init') {
steps {
echo "Hello, this is build number ${env.BUILD_NUMBER}"
}
}
您还可以在没有 env 对象的情况下访问环境变量
stage('Init') {
steps {
echo "Hello, this is build number ${BUILD_NUMBER}"
}
}
但是,对于预定义变量,通常使用 env 对象访问它们。
Jenkins 中的本地环境变量
您还可以在 JenkinsFile 脚本中定义自己的环境变量。这是通过将变量添加到环境块来完成的。
pipeline {
agent any
environment {
DISABLE_AUTH = 'true' //can be used in whole pipeline
}
stages {
stage(“Build”) {
steps {
echo env.DISABLE_AUTH
}
}
}
}
您还可以为特定阶段定义本地环境变量
pipeline {
agent any
environment {
DISABLE_AUTH = 'true'
}
stages {
stage(“Build”) {
environment {
ENABLE_AUTH = ‘false’ //can be used in this stage only
}
steps {
echo env.DISABLE_AUTH
echo env.ENABLE_AUTH
}
}
}
}
您还可以访问通过环境块中的 GUI 创建的凭据。但是,这超出了本文的范围。_
2. Jenkins 中的参数。
您还可以在 Jenkins 脚本中提供参数。参数可以是以下类型。
1.字符串参数。
- 布尔参数。
3.多行字符串参数。
4.选择参数。
出于本文的目的,我们将看到一个涉及使用选择参数的用例。_
pipeline {
agent any
parameters {
choice(name: 'Version', choices:['1.1.0', '1.2.0', '1.3.0'], description:'')
}
stages {
stage('Init') {
steps {
echo "Hello, this is build number ${BUILD_NUMBER}"
}
}
stage("deploy"){
steps{
echo "Deploying Version ${VERSION}"
}
}
}
}
您现在可以前往 Jenkins 仪表板,您将看到一个build with parameters
选项,在选择版本后将开始构建。
免责声明:这对 Jenkins 中的参数很简单,关于相同的更深入的文章正在编写中。
- 将构建步骤重构为 groovy 脚本。
现在,您将通过将 docker build 命令移动到 groovy 脚本中来开始分解和重构 JenkisFile 中的构建步骤。您可以在文档中阅读有关 Jenkins 中 groovy 脚本及其用例的更多信息
在项目的根目录下创建一个名为script.groovy
的文件,并在其中添加以下代码。
def buildApp() {
echo "Building app"
}
return this
要在 JenkinsFile 中使用此脚本,请在 init 阶段添加一个脚本块并按如下方式加载文件。
stage('Init') {
steps {
script {
gv = load "script.groovy"
}
}
}
为了使这个全局可用,我们可以在文件顶部定义它。
def gv
pipeline {
agent any
parameters {
choice(name: 'Version', choices:['1.1.0', '1.2.0', '1.3.0'], description:'')
}
stages {
stage('Init') {
steps {
script {
gv = load "script.groovy"
}
}
}
stage("deploy"){
steps{
echo "Deploying Version ${VERSION}"
}
}
}
}
您现在可以通过以下方式访问script.groovy
文件中定义的buildApp
函数:
stage('build') {
steps{
scripts {
gv.buildApp()
}
}
}
将您的代码提交给版本控制并运行新的构建,它应该会通过。
我们引入了一个新概念,即 groovy 脚本的使用,这将在下一篇文章中全面讨论。
在这个阶段,您应该对在 Jenkins 中使用环境变量和参数相当熟悉,并且应该对 groovy 脚本的用例及其重要性有基本的了解。在下一篇文章中,我们现在将编写一个 Jenkins 文件,该文件在我们今天经历的基础(环境变量、参数、用户输入和 groovy 脚本的使用)的基础上构建、运行测试并将我们的 docker 镜像推送到 dockerhub。我们还将设置电子邮件通知以通知我们构建状态(成功/失败)。
快乐的黑客。
更多推荐
所有评论(0)