如何快速上手Jenkinsfile编写?再快一点?

如何快速上手Jenkinsfile编写?再快一点?_第1张图片

您好,本章主要我们主要学习流水线Jenkinsfile的开发工具。主要包含以下内容:

1. 片段生成器

2. 声明式语法生成器

3. 全局变量参考

4. 常用的流水线方法

适合人群: 所有对DevOps感兴趣的同学。


????开始分享喽! 准备上车  

1.片段生成器

使用片段生成器可以根据个人需要生成方法,有些方法来源于插件,则需要先安装相关的插件才能使用哦。

如何快速上手Jenkinsfile编写?再快一点?_第2张图片

填写好参数后,点击生成,然后复制粘贴到Jenkinsfile。

如何快速上手Jenkinsfile编写?再快一点?_第3张图片

2. 声明式语法生成器

对于不熟悉声明式语法的伙伴,我们可以按照声明式语法生成器选择生成jenkinsfile的片段。在实际实践中很有帮助的。

如何快速上手Jenkinsfile编写?再快一点?_第4张图片


???? 欢迎入群交流   可在文末扫码加入


3. 全局变量

当我们在配置邮件通知时或者制作标签时,可以借用Jenkins自带的全局变量完成。

如何快速上手Jenkinsfile编写?再快一点?_第5张图片

常用的env变量

BUILD_NUMBER          //构建号BUILD_ID              //构建号BUILD_DISPLAY_NAME    //构建显示名称JOB_NAME              //项目名称
EXECUTOR_NUMBER       //执行器数量NODE_NAME             //构建节点名称WORKSPACE             //工作目录JENKINS_HOME          //Jenkins homeJENKINS_URL           //Jenkins地址BUILD_URL             //构建地址JOB_URL               //项目地址

常用的currendBuild变量

result  currentResult   //构建结果displayName      //构建名称  #111description      //构建描述duration         //持续时间

4.常用的流水线方法

JSON处理

def response = readJSON text: "${scanResult}"println(scanResult)
//原生方法import groovy.json.*
@NonCPSdef GetJson(text){    def prettyJson = JsonOutput.prettyPrint(text)     new JsonSlurperClassic().parseText(prettyJson)}

使用凭据

withCredentials([string(credentialsId: "xxxxx", variable: "sonarToken")]) {    println(sonarToken)}


下载代码

//Gitcheckout([$class: 'GitSCM', branches: [[name: "brnachName"]],             doGenerateSubmoduleConfigurations: false,             extensions: [], submoduleCfg: [],             userRemoteConfigs: [[credentialsId: "${credentialsId}",             url: "${srcUrl}"]]])//Svncheckout([$class: 'SubversionSCM', additionalCredentials: [],             filterChangelog: false, ignoreDirPropChanges: false,             locations: [[credentialsId: "${credentialsId}",             depthOption: 'infinity', ignoreExternalsOption: true,             remote: "${svnUrl}"]], workspaceUpdater: [$class: 'CheckoutUpdater']])

展示报告

publishHTML([allowMissing: false,         alwaysLinkToLastBuild: false,         keepAll: true,         reportDir: './report/',         reportFiles: "a.html, b.html",         reportName: 'InterfaceTestReport',         reportTitles: 'HTML'])

交互输入

def result = input  message: '选择xxxxx',                     ok: '提交',                    parameters: [extendedChoice( description: 'xxxxx',                                                 descriptionPropertyValue: '',                                                 multiSelectDelimiter: ',',                                                 name: 'failePositiveCases',                                                 quoteValue: false,                                                 saveJSONParameterToFile: false,                                                 type: 'PT_CHECKBOX',                                                 value: "1,2,3",                                                 visibleItemCount: 99)]   println(result)

构建用户

wrap([$class: 'BuildUser']){            echo "full name is $BUILD_USER"            echo "user id is $BUILD_USER_ID"            echo "user email is $BUILD_USER_EMAIL"}

发送http请求

ApiUrl = "http://xxxxxx/api/project_branches/list?project=${projectName}"Result = httpRequest authentication: 'xxxxxxxxx',                         quiet: true,                          contentType: 'APPLICATION_JSON' ,                           url: "${ApiUrl}"

内容很难吗? 推荐可以看下视频教程。快速上手!

如何快速上手Jenkinsfile编写?再快一点?_第6张图片


交流学习       不要错过

你可能感兴趣的:(如何快速上手Jenkinsfile编写?再快一点?)