Jenkins流水线构建

目录

1、Jenkins流水线

1.1、安装插件Pipeline

1.2、安装插件Pipeline Stage View

1.3、安装插件Blue Ocean

1.4、Jenkins语法

1.4.1、声明流水线语法

1.5、流水线项目配置

1.5.1、单分支流水线

1.5.2、创建多分支流水线

1、Jenkins流水线

说明:流水线既能作为任务的本身,也能作为Jenkinsfile。

优势:使用流水线可以让任务从ui手动操作,转换为代码,像docker的dockerfile一样,从shell命令到配置文件,更适合大型项目,可以让团队的其他开发者同时参与进来,同时也可以编辑开发Jenkins web ui 不能完成的更复杂的构建,作为开发者可读性也更好。

1.1、安装插件Pipeline

  • 安装方式:Manage Jenkins ->插件管理->可选插件->搜索:Pipeline ->点击选中并执行下载安装(Install without restart)

1.2、安装插件Pipeline Stage View

  • 安装方式:Manage Jenkins ->插件管理->可选插件->搜索:Pipeline Stage View ->点击选中并执行下载安装(Install without restart)

1.3、安装插件Blue Ocean

  • 安装方式:Manage Jenkins ->插件管理->可选插件->搜索:Blue Ocean ->点击选中并执行下载安装(Install without restart)
  • 作用:图形化展示项目构建,丰富的功能可完成流水线项目的展示,编辑,添加以及面板展示。
    • 持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态
    • Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
    • 个性化 以适应团队中每个成员不同角色的需求。
    • 在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
    • 本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。

1.4、Jenkins语法

使用详情见官方文档:使用 Jenkinsfile

1.4.1、声明流水线语法

1、语法规则

  • 流水线顶层必须是一个 block, 特别地: pipeline { }
  • 没有分号作为语句分隔符,,每条语句都必须在自己的行上。
  • 块只能由 节段, 指令, 步骤, 或赋值语句组成。 *属性引用语句被视为无参方法调用。 例如, input被视为 input()
    • agent :指定执行器
    • stages :所以阶段
    • stage :某一阶段,可以有多个
    • steps :阶段内的每一步,可执行命令
    • post :流水线完成后可执行的任务
      • aborted : 只有当流水线或阶段状态为“aborted”时运行,如:手动取消
      • unstable : 只有当流水线或阶段状态为“unstable”时运行,如:测试失败
      • success : 只有当流水线或阶段状态为“success”时运行
      • failure : 只有当流水线或阶段状态为“failure”时运行
      • changed :只有当流水线或阶段完成状态与之前不同时
      • always :无论流水线或阶段完成的状态

1.5、流水线项目配置

注意事项:主节点标签值默认为:built-in【给主节点添加标签值mater,使用标签值mater,未生效,会提示没有找到该节点;使用默认built-in标签值成功】

1.5.1、单分支流水线

1、创建单分支流水线

2、配置流水线,定义流水线模式:Pipeline script

  • 说明:相当于直接在流水线中编写需要执行的Jenkinsfile文件内容

  • 示例代码如下:
pipeline {
    agent {
        label "test_server01"
        //customWorkspace '/path/to/custom/workspace' // 可选:自定义工作目录
    }
    stages {
        stage('拉取代码') {
            steps {
                git credentialsId: 'a6105c2c-aeea-4228-a26c-a8ee835bc120', url: 'http://172.xx.xx.xx/root/vis.git'
                echo '拉取成功'
            }
        }            
        stage('推送代码到测试服务器2,并执行代码') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'test_server02', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
                    #!/bin/bash
                    cd  /root/push
                    
                    if [ -e venv_pipeline ]
                    then
                            echo "虚拟环境目录存在!"
                            # 激活虚拟环境
                            source `find /root/push/venv_pipeline/bin/  -name  "activate"`
                            echo "虚拟环境被激活!"
                    
                    else
                    
                            echo "创建虚拟环境!"
                            virtualenv venv_pipeline
                            source `find /root/push/venv_pipeline/bin/  -name  "activate"`
                            echo "虚拟环境被激活!"
                            pip3 install -r requirements.txt
                            echo "环境依赖安装完成!"
                    fi
                    
                    # 执行Python脚本
                    echo "开始执行脚本....."
                    python3 ad.py''',
                    execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/push', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
                    
                    echo "脚本执行成功"
            }
        }
        
        stage('执行自动化测试') {
            steps {
                echo '自动化测试执行成功'
                sh "pwd"
            }
        }
}
}

3、配置流水线,定义流水线模式:Pipeline script from SCM

  • 说明:此方式是从代码仓库拉取代码,并且拉取的目录代码的根目录下必须要有Jenkinsfile文件,可以指定多分支

1.5.2、创建多分支流水线

1、创建多分支流水线

  • 注意:创建多分支流水线,每个分支下面必须要有Jenkinsfile文件

2、配置多分支流水线,添加git仓库

3、扫描多分支流水线进行构建

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你的Jenkins流水线在安装了Java 17的情况下无法构建Java 17的代码,可能是因为Jenkins默认使用的Java版本与你安装的Java版本不一致。你可以尝试以下步骤来解决这个问题: 1. 确认Jenkins的Java路径:登录到Jenkins服务器,导航到"系统管理" > "全局工具配置"。在这个页面中,找到"JDK"部分,并确保配置了正确的Java 17路径。如果没有,请添加Java 17的安装路径,并保存配置。 2. 确认Jenkins流水线的Java配置:进入你的Jenkins流水线项目的配置页面,在"构建环境"部分,确认你已经选择了正确的Java版本。选择你在步骤1中配置的Java 17路径作为JDK。 3. 清理并重新构建:重新触发或手动执行Jenkins流水线构建,并查看是否成功构建Java 17的代码。 如果上述步骤仍然无法解决问题,你还可以尝试以下几个方法: - 在Jenkins流水线中显式指定Java路径:在Jenkins流水线构建脚本中,使用`tool`指令显式指定Java 17的路径,例如: ```groovy pipeline { agent any tools { jdk 'Java17' } stages { // 构建阶段 stage('Build') { steps { // 构建步骤 } } } } ``` 在上述示例中,我们使用了`jdk 'Java17'`来指定Java 17的路径。确保在Jenkins服务器上配置了与`Java17`相对应的JDK。 - 检查构建脚本中的其他配置:检查你的构建脚本是否有其他配置或限制,可能会影响流水线的Java版本。例如,某些插件或步骤可能会强制使用特定的Java版本。确保将这些配置与Java 17兼容。 希望以上方法能够帮助你解决问题并成功构建Java 17的代码。如果问题仍然存在,请提供更多信息,以便我们进一步帮助你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值