首页 > 系统相关 >【Linux】Jenkins之Pipeline的使用(五)

【Linux】Jenkins之Pipeline的使用(五)

时间:2022-12-06 01:56:20浏览次数:71  
标签:Pipeline false 代码 拉取 steps Linux Jenkins stage

概念

  是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点 的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

优势

代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。
可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline。
多功能:Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。
可扩展:Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。

插件安装

  需要安装插件Pipeline

  安装后,在Jenkins中"新建Item"时会出现一个选项

使用步骤

1、新建pipeline项目

  

2、编辑模板

  选择对应模板,Groovy定义流水线脚本。

3、PipeLine语法

 1 #声明式:
 2 pipeline {
 3     agent any
 4     stages { #整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage
 5         stage('拉取代码' ) { #流水线中的某个阶段,可能出现多个。一般分为拉取代码,编译构建,部署等阶段。
 6             steps { #代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容
 7                 echo '拉取代码'
 8             }
 9         }
10         stage('编译代码 ') {
11             steps {
12                 echo '编译代码'
13             }
14         }
15         stage('发布运行 ') {
16             steps {
17                 echo '发布运行'
18             }
19         }
20     }
21 }
22 #脚本式:
23 node {
24     stage('拉取代码' ) {
25         echo '拉取代码'
26     }
27     stage('编译代码 ') {
28         echo '编译代码'
29     }
30     stage('发布运行 ') {
31         echo '发布运行'
32     }
33 }

4、使用流水线语法

 

 

 

 

 

 

5、将内容粘贴到steps中

 

 

 

 

 

6、实现拉取->编译->部署

  脚本内容:

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: '4a684b9a-6e5c-4e3d-8ea5-979e24fc', url: '[email protected]:xxxx/mall.git']]])
            }
        }
        stage('build project') {
            steps {
                sh '/data/soft/apache-maven-3.8.6/bin/mvn -version'
                
                sh '/data/soft/apache-maven-3.8.6/bin/mvn clean -DskipTests=true package'
            }
        }
        stage('publish project') {
            steps {
                sh 'pwd'
                sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.1.153 - hd03', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''mkdir -p /data/app/jar

cp mall-product/*.jar /data/app/jar/

/data/app/bin/deploy.sh /data/app/jar/mall-admin-1.0-SNAPSHOT.jar "-Xms256m -Xmx256m"''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'mall-product', remoteDirectorySDF: false, removePrefix: 'mall-product/target', sourceFiles: 'mall-product/target/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}

7、执行Pipeline效果

 

 

 

参考:2.Jenkins之Pipeline使用 - RollBack2010 - 博客园 (cnblogs.com)

标签:Pipeline,false,代码,拉取,steps,Linux,Jenkins,stage
From: https://www.cnblogs.com/h--d/p/16954074.html

相关文章

  • Linux的free命令与OOM的简单总结
    简介查看操作系统配置最关键的几个命令是lscpu查看CPU信息以及free查看内存信息.不过free信息有一个疑惑点他的free的值可能很小.会让搭建产生误解.这里简单说......
  • 从零开始实现一个Linux容器
    欢迎来到猫猫的C语言实验室喵!序言:文中所述源码是以MIT协议开源的,本文转载请注明原创作者为Moe-hacker,除此之外无其他要求。作者其实想将本文改名为《Re:从零开始的conta......
  • 浅谈Linux容器安全:chroot,capability与namespace技术
    作者只是个萌新,大佬轻喷。文章最终确定以时间顺序浅谈Linux容器安全原理。安全原理相关知识网上已经有很多了,咱通过几个具体攻击实例来讲讲它们的真实作用。演示均在猫......
  • Linux Debian11使用Podman安装DVWA靶场环境
    一、DVWA靶场环境简介​1.DVWA一个用来进行安全脆弱性鉴定的PHP/MySQLWeb应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用......
  • Linux究极服务部署
    @目录环境准备ftp服务测试验证nfs服务测试验证smb服务测试验证www服务测试验证mail服务测试验证dhcp服务测试验证环境准备第一步,将下载的虚拟机文件上传到VMware中点......
  • linux之vim
     概述复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻烦的,有一点学习成本。本文总结了使用vim复制粘贴的典型场景和使用方法,希望对读者有帮助。vim......
  • Linux 文件基本属性
    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。......
  • LINUX一些命令
    linux常用的指令ls查看目录中的文件cd/home进入‘/home’目录;cd..返回上一级目录;cd../..返回上两级目录mkdirdir1创建一个叫做‘dir1’的目录rmdirdir......
  • linux基本
    linux没有错误就代表操作成功table按键自动补全cd进入cd..退出ls列出目录,可以组合使用-a查看全部文件,包括隐藏文件-l列出所有文件包括权限没有隐藏文件pwd......
  • Linux 小技巧
    /*每日一更新*//*从今天开始每天给大家提供一个小技巧,方便大家学习和LINUX知识!*//*以命令,系统管理,小技巧为主*/1.按内存从大到小排列进程:  ps-eo"%C:%p:%z:......