您好,本章主要我们主要学习流水线Jenkinsfile的开发工具。主要包含以下内容:
1. 片段生成器
2. 声明式语法生成器
3. 全局变量参考
4. 常用的流水线方法
适合人群: 所有对DevOps感兴趣的同学。
????开始分享喽! 准备上车
1.片段生成器
使用片段生成器可以根据个人需要生成方法,有些方法来源于插件,则需要先安装相关的插件才能使用哦。
填写好参数后,点击生成,然后复制粘贴到Jenkinsfile。
2. 声明式语法生成器
对于不熟悉声明式语法的伙伴,我们可以按照声明式语法生成器选择生成jenkinsfile的片段。在实际实践中很有帮助的。
???? 欢迎入群交流 可在文末扫码加入
3. 全局变量
当我们在配置邮件通知时或者制作标签时,可以借用Jenkins自带的全局变量完成。
常用的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}"
内容很难吗? 推荐可以看下视频教程。快速上手!
交流学习 不要错过