接下来我会在Q&A讲述一些常用的功能
后续可能还会陆续添加
构建一个流水线
声明式和脚本式流水线都是 DSL 语言,用来描述软件交付流水线的一部分。脚本式流水线是用一种限制形式的 Groovy 语法编写的。
文档:https://www.jenkins.io/zh/doc/book/pipeline/getting-started/.
构建流水线几种方式
官方提供的流水线可以通过以下任一方式来创建:
1.通过 Blue Ocean - 在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
2.通过经典 UI - 你可以通过经典 UI 在 Jenkins 中直接输入基本的流水线。
3.在源码管理系统中定义 - 你可以手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。
开始构建
这里就用Jenkins里面自带的(经典 UI )流水线管理来做演示吧
首先创建项目选择流水线
编写流水线构建脚本
我们在流水线填写如下代码
pipeline {
agent any
stages {
stage('构建') {
steps {
echo "拉取代码"
sh '''
git clone https://gitlab.xxxx.cn/root/test.git
cd test
docker build -t myapp .
'''
}
}
stage('测试') {
steps {
echo "这里可以执行执行集成测试"
}
}
stage('发布') {
steps {
sh '''
docker run --restart=always --name myapp -e TZ=Asia/Shanghai -p 8080:80 -d myapp
'''
}
}
}
}
执行任务
这里我们演示手动触发构建,点击立即构建即可
查看流水线日志
上面是可视化查看流水线构建的进度图
我们还可以通过控制台查看日志
成功判断
往下拉我们可以看到日志提示失败了
原来是我们刚才的容器已经启动,镜像构成后我需要停止原来的已经启动的服务,这时我们修改一下流水线脚本先停止原来的服务再重新启动
pipeline {
agent any
stages {
stage('测试') {
steps {
echo "这里可以执行执行集成测试"
npm run test
}
}
stage('构建') {
steps {
echo "拉取代码"
sh '''
rm -rf test
git clone https://gitlab.xxxx.cn/root/test.git
cd test
docker build -t myapp .
'''
}
}
stage('测试') {
steps {
echo "这里可以执行执行集成测试"
npm run test
}
}
stage('发布') {
steps {
sh '''
docker stop myapp
docker rm myapp
docker run --restart=always --name myapp -e TZ=Asia/Shanghai -p 8080:80 -d myapp
'''
}
}
}
}
可以看到我们修改了流水线脚本后
最后的集成构建成功发布
此时我们再去访问我们web服务
访问一下swagger接口文档试试
可以看到部署成功
我们再回来看流水线
可以看到最后一次都是绿色说明全部集成部署完成