2023年7月10日发(作者:)
Jenkins⾼级⽤法-Jenkinsfile介绍及实战经验系列⽬录s 持续集成 - Core 持续集成(Docker&⾃由风格&Jenkinsfile)s ⾼级⽤法 - Blue Ocean 使⽤s ⾼级⽤法 - 根据 git commit 控制构建过程s ⾼级⽤法 - 微服务DevOps实战( Core)常见问题:⼀.什么是 JenkinsfileJenkinsfile 是 Jenkins 2.x 核⼼特性 Pipeline 的脚本,由Groovy语⾔实现。Jenkinsfile⼀般是放在项⽬根⽬录,随项⽬⼀起受源代码管理软件控制,⽆需像创建“⾃由风格"(Jenkins FreeStyle)项⽬⼀样,每次可能需要拷贝很多设置到新项⽬,提供了⼀些直接的好处:Pipeline上的代码审查/迭代Pipeline的审计跟踪Pipeline的唯⼀真实来源,可以由项⽬的多个成员查看和编辑。Pipeline⽀持:Declarative(在Pipeline 2.5中引⼊)和Scripted Pipeline两种格式。两者都⽀持建⽴Pipeline,两者都可以⽤于在Web UI中定义⼀个流⽔线Jenkinsfile,将Jenkinsfile⽂件创建并检查到源代码控制库中通常被认为是最佳做法。更多详细信息参考: 推荐必读⼆. Jenkinsfile 实战经验看本⼩节之前,如果你不熟悉 Jenkinsfile 那么推荐⼀定要阅读,第⼀⼩节推荐的⽂章,⾥⾯介绍了很多基本⽤法。这⾥的实战主要讲声明式 Jenkinsfile,因为声明式 Jenkinsfile是 Pipeline 2.5 引⼊的,⽐之以前的脚本式会有⼀些更先进的设计和更快捷的⽤法,且声明式Jenkinsfile还兼容脚本式语法。这⾥主要讲⼀些博主实际⽤的过程中的经验。1.在指定的Jenkins集群结点上运⾏pipeline { agent { node { label 'slave-1' } }}label 指你的集群结点名称2.定义环境变量pipeline { environment { NUGET_KEY = 'abc' }}使⽤:_KEY在sh⾥使⽤$NUGET_KEY例⼦:输出该环境变量echo "${_KEY}"sh:sh 'echo $NUGET_KEY'这⾥要注意在 sh 语句块⾥使⽤的不同。3.设置 github webhook 触发器triggers { githubPush()}UI上没有没有设置github webhook触发的。脚本设置后,需要到 【系统管理】->【系统设置】⾥,⼿动注册⼀下githubwebhook即可4.常⽤的预置环境变量变量名BRANCH_NAMEGIT_COMMIT说明当前分⽀名称当前 commit hashGIT_PREVIOUS_SUCCESSFUL_COMMIT上⼀次构建成功 cimmit hash⽰例:echo "branch: ${_NAME}"echo "current SHA: ${_COMMIT}"echo "previous SHA: ${_PREVIOUS_SUCCESSFUL_COMMIT}"块script 块⾥可以写脚本式Jenkinsfile的语法例⼦:stages { stage('Build') { steps { script { result = sh (script: "git log -1|grep 'Release'", returnStatus: true)
echo "result: ${result}" } } } }6.设置构建结果post { always { script { = 'NOT_BUILT' } } }⼀般放在 POST 语句块7.敏感数据设置⼀些敏感数据,⽐如账号密码,不可能卸载脚本中。⾸先新建凭据(Jenkins 地址 /credentials/store/system/domain/_/):类型选择 Secret text,Secret 输出你的 账号/密码等。然后记住你设置的ID,待会要⽤可以通过 credentials函数来获取credentials('<凭据id>')例如credentials('test')直接输出到控制台也会加密:8.定义变量def cusversion="Jenkinsfile"必须放在 pipeline 前⾯或者 script 语句块⾥⾯9.指定分⽀运⾏stagestage('Deploy') { when { branch "<分⽀名称>" }}三.扩展阅读Jenkinsfile 语法玩转Jenkins Pipeline
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688987133a191930.html
评论列表(0条)