创建jenkins Pipeline流水线
Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM)中直接载入 Jenkinsfile Pipeline 这种方法)。
在“插件管理”中的选择“可选插件”输入“Pipeline”,点击安装。
————————————————
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
**stages:**代表整个流水线的所有执行阶段,通常stages只有1个,里面包含多个stage。
**stage:**代表流水线中的某个阶段,可能出现n个,一般分为拉取代码,编译构建,部署等阶段。
**steps:**代表一个阶段内需要执行的逻辑,steps里面是shell脚本,git拉取代码,ssh远程发布等人以内容。
编写一个简单声明式Pipeline:
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('项目部署') {
steps {
echo '项目部署'
}
}
}
}
Scripted Pipeline脚本式-Pipeline
node {
def mvnHome
stage('Preparation') { // for display purposes
}
stage('Build') {
}
stage('Results') {
}
}
**Node:**节点,一个Node就是一个jenkins节点,Master或者Agent,是执行step的具体运行环境,后续讲到jenkins的Master-Slave架构的时候用到。
**stage:**阶段,一个Pipeline可以换份为若干个stage,每个stage代表一组操作,比如:Build,Test,Deploy,Stage是一个逻辑分组的概念。
**Step:**步骤,Step是最基本的操作单元,可以是打印一句话,也可以是构建一个Docker镜像,由各类jenkins插件提供,比如命令:sh ’make‘,就相当于我们平时shell终端中执行make命令一样。
node {
def mvnHome
stage('拉取代码') { // for display purposes
echo '拉取代码'
}
stage('编译构建') {
echo '编译构建'
}
stage('项目部署') {
echo '项目部署'
}
}
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '9cc8889a-154c-4f46-8547-456070c985ad', url: 'http://101.35.161.133:8010/dev-group/web_demo.git']]])
}
}
stage('编译构建') {
steps {
echo '编译构建'
sh 'mvn clean package'
}
}
stage('项目部署') {
steps {
echo '项目部署'
sh 'JENKINS_NODE_COOKIE=dontKillMe nohup java -jar ./target/*.jar --server.port=8080 -> d.log 2>&1 &'
echo '部署成功'
}
}
}
}
**注意:**有时需要将某个命令放到后台执行,然后并行或者异步执行其他命令,但在jenkins上很容易遇到无法真正将命令放到后台运行的问题,原因是Pipeline在推出node的时候,会默认清理自己发出的每个shell命令,即使使用了nohub,可以在命令执行的时候加上“JENKINS_NODE_COOKIE=dontKillMe”将不会清除命令。
点击“保存应用”,点击立即构建。
文章作者:chensi2113
原文链接:https://blog.csdn.net/chaochao2113/article/details/122843413
阅读完记得关注公众号,回复“加群”和更多技术人员交流。
原文始发于微信公众号(OSC DevOps):创建jenkins Pipeline流水线
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论