做网站入什么会计科目爱站工具包的主要功能
目录
- 前言
- 开始前的准备
- 第一次创建应用
- 操作Jenkins
- General
- 流水线
- Jenkins构建
- 扩展
- 小结
前言
- 之前写过Jenkins kubernetes(k8s)滚动发布实战,使用的是
Jenkins 自由风格
,本篇使用Pipeline
实现滚动发布。
开始前的准备
- 与Jenkins kubernetes(k8s)滚动发布实战相同,就不赘述了。
第一次创建应用
- 与Jenkins kubernetes(k8s)滚动发布实战相同,就不赘述了。
操作Jenkins
-
怎么下载、运行Jenkins就不赘述了,可以参考拙作gitlab+jenkins自动发布到Tomcat。
-
Jenkins配置maven、jdk、git等等同样可以参考拙作gitlab+jenkins自动发布到Tomcat。
-
下面直接创建
Pipeline
项目。进入配置。
General
- 这块填下描述就可以了。
流水线
- 重点是这里
Pipeline script
。
Pipeline script
内容如下(因为我是公共仓库,不需要认证,克隆仓库步骤不必使用credentialsId
)。
pipeline {agent anytools {maven 'maven3.6' }stages {stage('开始') {steps {echo '开始 '}}stage('克隆项目') {steps {git branch: 'main',url: 'https://github.com/1030907690/spring-boot-kubernetes.git'sh 'pwd'sh "ls -lat"}}stage('构建') {steps {sh 'mvn clean package -DskipTests'sh 'echo tag ${BUILD_TAG}'sh 'cp src/main/resources/Dockerfile target'sh 'cd target && docker build -t spring-boot-kubernetes:${BUILD_TAG} .'}}stage('滚动更新') {steps {sh 'kubectl set image deployment/spring-boot-kubernetes-deployment spring-boot-kubernetes=spring-boot-kubernetes:${BUILD_TAG} --record'sh 'kubectl get pod -o wide'sh 'kubectl rollout status deployment/spring-boot-kubernetes-deployment'sh 'kubectl get pod -o wide'}}}post {success {echo '更新成功'}always {echo 'goodbye'}}
}
Jenkins构建
- 下面就可以使用
Build Now
一键发布最新的应用。
- 可以查看构建历史,如果有错误的时候,方便排查错误。
- 如果你不想点Build Now,也可以使用Webhook,可以参考拙作gitlab+jenkins自动发布到Tomcat。
扩展
-
流水线定义,支持多种,还可以使用
Pipeline script from SCM
,如下图所示。
-
我们可以把
Jenkinsfile
写在项目中,一并提交到远程仓库,如下图所示。
-
Jenkins的配置修改后如下所示。
-
还有因为已经指定了仓库,
Jenkinsfile
中克隆项目的步骤可以注释了。
//stage('克隆项目') {// steps {// git branch: 'main',// url: 'https://github.com/1030907690/spring-boot-kubernetes.git'// sh 'pwd'// sh "ls -lat"// }// }
小结
自由风格
能应对绝大部分场景,Pipeline
感觉可视化
体验更好,以代码的形式实现,更容易细粒度
控制,适用于复杂的场景,同时学习成本高一点。