当前位置: 首页>后端>正文

jenkins页面无check now按钮 jenkinsfile checkout

1. jenkinsfile

        Jenkinsfile的是实现Pipeline as Code的核心功能。 该文件用于描述流水线的过程。

以下是一个简单的实例:

pipeline{
    //指定运行此流水线的节点
    agent { node { label "build"}}
    
    //管道运行选项
    options {
        skipStagesAfterUnstable()
    }
    //流水线的阶段
    stages{
        //阶段1 获取代码 名称自定义
        stage("CheckOut"){
            steps{
                script{
                    println("获取代码")
                }
            }
        }
        stage("Build"){
            steps{
                script{
                    println("运行构建")
                }
            }
        }
    }
    post {
        always{
            script{
                println("流水线结束后,经常做的事情")
            }
        }
        
        success{
            script{
                println("流水线成功后,要做的事情")
            }
        
        }
        failure{
            script{
                println("流水线失败后,要做的事情")
            }
        }
        
        aborted{
            script{
                println("流水线取消后,要做的事情")
            }
        
        }
    }
}

agent{ } ,指定流水线要运行的节点,可以使用名称或者标签

options{ } ,定义流水线运行时的一些选项

stages{ } ,stages包含多个stage{ },stage包含steps{ }。是流水线的每个步骤

post{ } , 定义好此流水线运行成功或者失败后,根据状态做一些任务

2. pipeline开发工具

选择任意pipeline类型的作业,点击“流水线语法”即可进入pipeline开发工具页面。

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins,第1张

 常用的工具有:片段生成器、声明式语法生成器、全局变量参考。

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_生成器_02,第2张

 2.1 片段生成器

        流水线代码片段生成器, 非常好用。在这里可以找到每个插件以及Jenkins内置的方法的使用方法。使用片段生成器可以根据个人需要生成方法,有些方法来源于插件,则需要先安装相关的插件才能使用

例如:生成一个执行shell脚本命令的代码片段

1、选择 sh :Shell Script

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_jenkins_03,第3张

 2、输入想要执行的shell命令

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins_04,第4张

 3、点击生成流水线脚本

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_字符串_05,第5张

 4、使用

进入pipeline项目的一次构建中,点击回放 

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_jenkins_06,第6张

复制生成的代码到pipeline中

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins_07,第7张

 运行后,查看日志

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_字符串_08,第8张

 2.2 声明式语法生成器

可以生成声明式流水线语法的语句块。

例如:生成一段指定标签为build的agent

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_jenkins_09,第9张

复制到pipeline中,运行查看

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_生成器_10,第10张

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_jenkins_11,第11张

 2.3 全局变量参考

这些是已经安装的Jenkins插件和Jenkins内置的全局变量清单。

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins_12,第12张

 2.3.1 全局变量的使用

流水线中使用pipeline变量

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_字符串_13,第13张

 可以输出本次流水线的信息

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins_14,第14张

 例如:输出构建id,构建名称,作业地址

调用方式使用   env.

echo "id: ${env.BUILD_ID}  name: ${env.BUILD_DISPLAY_NAME}   job_url: ${env.JOB_URL}"

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_Jenkins_15,第15张

jenkins页面无check now按钮 jenkinsfile checkout,jenkins页面无check now按钮 jenkinsfile checkout_字符串_16,第16张

 2.3.2 jenkins常用变量

根据实际需求选择使用。注意调用方式,${}

变量名

含义

WORKSPACE

当前Job构建目录的绝对路径

SVN_REVISION

当前工作区的SVN版本号

SVN_URL

当前工作区的Svn URL

BUILD_NUMBER

当前构建的编号,例如“12”等

BUILD_ID

当前构建的版本ID,与构建的BUILD_NUMBER相同

BUILD_DISPLAY_NAME

当前版本的显示名称,默认为“# 1”,即BUILD_NUMBER

JOB_NAME

即此版本的项目名称,例如“foo”或“foo / bar”

JENKINS_HOME

Jenkins用于存储数据的主节点上分配的目录的绝对路径

JENKINS_URL

Jenkins的完整URL,如http:// server:port / jenkins /(注意:仅在系统配置中设置Jenkins URL时可用)

BUILD_URL

此版本的完整URL,例如http:// server:port / jenkins / job / foo / 15 /(必须设置Jenkins URL)

JOB_URL

该作业的完整URL,例如http:// server:port / jenkins / job / foo /(必须设置Jenkins URL)

BRANCH_NAME

对于多分支项目,这将被设置为正在构建的分支的名称,例如,如果您希望从master部署到生产环境而不是从feature分支部署;如果对应某种更改请求,则该名称通常是任意的(请参阅下面的CHANGE_ID和CHANGE_TARGET)

CHANGE_ID

对于与某种更改请求相对应的多分支项目,这将被设置为更改ID,例如拉取请求编号(如果支持);其他未设置

CHANGE_URL

对于与某种更改请求相对应的多分支项目,这将被设置为更改URL(如果支持);其他未设置

CHANGE_TITLE

对于与某种更改请求相对应的多分支项目,这将被设置为更改的标题(如果支持);其他未设置

CHANGE_AUTHOR

对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的用户名(如果支持);其他未设置

CHANGE_AUTHOR_DISPLAY_NAME

对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的人名(如果支持);其他未设置

CHANGE_AUTHOR_EMAIL

对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的Email地址(如果支持);其他未设置

CHANGE_TARGET

对于与某种更改请求相对应的多分支项目,这将被设置为合并到的目标或者基础分支(如果支持);其他未设置

JOB_BASE_NAME

此构建的项目的短名称剥离文件夹路径,例如“bar / foo”的“foo”

BUILD_TAG

“jenkins - $ {JOB_NAME} - $ {BUILD_NUMBER}”的字符串。 JOB_NAME中的所有正斜杠(/)都用破折号( - )替换。方便地放入资源文件,jar文件等,以便于识别

EXECUTOR_NUMBER

唯一编号,用于标识执行此构建的当前执行程序(在同一台计算机的执行程序中)。这是您在“构建执行程序状态”中看到的数字,但数字从0开始,而不是从1开始

NODE_NAME

如果构建在代理上,则代理的名称; 如果在主版本上运行,则为“MASTER”

NODE_LABELS

节点分配的空白分隔的标签列表

GIT_COMMIT

检出提交的hash值

GIT_PREVIOUS_COMMIT

上次在此分支上构建提交的hash值(如果有)

GIT_PREVIOUS_SUCCESSFUL_COMMIT

最后一次成功地在这个分支上构建提交的hash值(如果有的话)

GIT_BRANCH

远程分支名称

GIT_LOCAL_BRANCH

本地分支名称

GIT_URL

远程git仓库的URL。如果有多个,将会是GIT_URL_1,GIT_URL_2等

GIT_COMMITTER_NAME

配置的Git提交者名称

GIT_AUTHOR_NAME

已配置的Git作者电子邮件

JOB_DESCRIPTION

显示项目描述

CAUSE

显示谁、通过什么渠道触发这次构建

CHANGES

显示上一次构建之后的变化

showPaths 如果为 true,显示提交修改后的地址。默认false。
showDependencies 如果为true,显示项目构建依赖。默认为false
format 遍历提交信息,一个包含%X的字符串,其中%a表示作者,%d表示日期,%m表示消息,%p表示路径,%r表示版本。注意,并不是所有的版本系统都支持%d和%r。如果指定showPaths将被忽略。默认“[%a] %m\\n”。
pathFormat 一个包含“%p”的字符串,用来标示怎么打印路径。

PROJECT_NAME

显示项目的全名

PROJECT_DISPLAY_NAME

显示项目的显示名称

SCRIPT

从一个脚本生成自定义消息内容。自定义脚本应该放在"$JENKINS_HOME/email-templates"。当使用自定义脚本时会默认搜索$JENKINS_HOME/email-templatesdirectory目录。其他的目录将不会被搜索。

script 当其使用的时候,仅仅只有最后一个值会被脚本使用(不能同时使用script和template)。

template常规的simpletemplateengine格式模板

BUILD_LOG_MULTILINE_REGEX

按正则表达式匹配并显示构建日志

regex java.util.regex.Pattern 生成正则表达式匹配的构建日志。无默认值,可为空。
maxMatches 匹配的最大数量。如果为0,将匹配所有。默认为0。
showTruncatedLines 如果为true,包含[...truncated ### lines...]行。默认为true。
substText 如果非空,就把这部分文字(而不是整行)插入该邮件。默认为空。
escapeHtml 如果为true,格式化HTML。默认为false。
matchedSegmentHtmlStyle 如果非空,输出HTML。匹配的行数将变为<b style=”your-style-value”> html escaped matched line </b>格式。默认为空。
 

BUILD_LOG

显示最终构建日志

maxLines 日志最多显示的行数,默认250行。
escapeHtml 如果为true,格式化HTML。默认false。

PROJECT_URL

显示项目的URL地址

BUILD_STATUS

显示当前构建的状态(失败、成功等)

BUILD_URL

显示当前构建的URL地址

CHANGES_SINCE_LAST_SUCCESS

显示上一次成功构建之后的变化

reverse在顶部标示新近的构建。默认false。
format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”。
showPaths,changesFormat,pathFormat分别定义如${CHANGES}的showPaths、format和pathFormat参数

CHANGES_SINCE_LAST_UNSTABLE

显示显示上一次不稳固或者成功的构建之后的变化

reverse在顶部标示新近的构建。默认false。
format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”。
showPaths,changesFormat,pathFormat分别定义如${CHANGES}的showPaths、format和pathFormat参数。
 

ENV

显示一个环境变量

var- 显示该环境变量的名称。如果为空,显示所有,默认为空。

FAILED_TESTS

如果有失败的测试,显示这些失败的单元测试信息

HUDSON_URL

显示测试的数量

var- 默认“total”。
total -所有测试的数量。
fail -失败测试的数量。
skip -跳过测试的数量。


https://www.xamrdz.com/backend/3xs1937756.html

相关文章: