jenkins pipline 拉取git历史版本

这篇具有很好参考价值的文章主要介绍了jenkins pipline 拉取git历史版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明,本文是基于:jenkins流水线(jenkinsfile)详解,保姆式教程_我认不到你的博客-CSDN博客,以下内容介绍通过 Commit ID 拉取 git 历史版本

Commit ID (节点号)是什么?(下图是gitee的信息)

我的理解是:我们每次提交git的时候,除了保存我们修改的代码外,也缓存了之前提交的代码,可以用于我们查看更新的内容,而Commit ID 就是为了识别这些历史的提交版本

jenkins pipline 拉取git历史版本

一、设置字符参数

我这里只展示了一个关于 git 版本的字符信息,也是本文最重要的一个,其他都不是必要的

其他的我设置了 nametag 来规定docker制作镜像的名字和版本

jenkins pipline 拉取git历史版本

二、编写流水线代码

1、点击流水线语法

jenkins pipline 拉取git历史版本

2、选择checkout:Check out from version control

再选择git,后面填写自己 git 项目的 url 这个指的不是 网页的那个 url , 是你拉取项目 git clone url 的这个 url ,再添加凭证

jenkins pipline 拉取git历史版本

3、其他不用管,点击生成流水线脚本就行,后面我会讲具体有什么用

jenkins pipline 拉取git历史版本

4、我的 Jenkins pipline 脚本

pipeline {
    // 指定任务在哪个集群节点中执行,any表示任意节点
    agent any
    
        // 声明全局变量,方便后面修改使用
    environment {
                        
        // 源jar名称,mvn打包之后,target目录下的jar包名称
        JAR_NAME='main*'

        // jenkins下的目录
        JENKINS_HOME='/var/jenkins_home/workspace/graduationProject'
    }

    // 工具,这是我在 jenkins 的全局配置配的,之前的博客有讲过
    tools{
        maven 'maven-3.8.4'
    }
    
    
    stages {
        stage('拉取代码') {
            steps {
                // 清除工作空间
                deleteDir()
                // 拉取代码 gitTag 是 之前自定义的 字符串参数
                checkout([$class: 'GitSCM', branches: [[name: '${gitTag}']], extensions: [], userRemoteConfigs: [[credentialsId: '生成的', url: 'git的url']]])
                echo '拉取成功'
            }
        }
        
        stage('执行构建') {
            steps {
            //    sh "mvn --version"
              sh "mvn clean package"
                echo '构建完成'
            }
        }
        
        stage('把jar包构建为docker镜像并运行') {
            steps {
                sh '''#!/bin/bash
                        
                        // 进入 jar 包所在目录 , 好配合 Dockerfile 生成 Docker 镜像
                        cd $JENKINS_HOME/admin/target
                        
                        // 把Dockerfile 复制到 jar 包所在目录 ,好配合 Dockerfile 生成 Docker 镜像
                        cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/admin/target
                        
                        # 修改文件权限  JAR_NAME
                        chmod 755 $JAR_NAME.jar
                        
                        # name 和 tag 是我 又设置的 一个字符参数 ,步骤和 gitTag 是一样的
                        echo "停止容器"
                        docker stop $name
                        
                        echo "删除容器"
                        docker rm $name
                        
                        echo "删除镜像"
                        docker rmi $name
                        
                        # 这个点(.)就是指的本目录下的 Dockerfile 文件,而
                        echo "打包镜像"
                        docker build -t $name:$tag .
                        
                        echo "运行镜像"
                        docker run -d -p 9999:9600 --name $name $name:$tag
                '''
                echo '运行成功'
            }
        }
    }
}

三、2.2中生成参数的讲解

checkout: Check out from version control 文档:Pipeline: SCM Step (jenkins.io)

GitSCM详细参数的可以看官网的教程:scmGit (jenkins.io),虽然官网叫scmGit,但使用的时候要用GitSCM,不然会报错哈

// doGenerateSubmoduleConfigurations 可要可不要
// submoduleCfg 可要可不要
// extensions 也可不要
checkout(
    [$class: 'GitSCM', 
     doGenerateSubmoduleConfigurations: false, 
     submoduleCfg: [], 
     extensions: [[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
     branches: [[name: '${gitTag}']],
     userRemoteConfigs: [[url: "git的url", credentialsId: "生成的"]]]
)
// 简化
checkout(
    [$class: 'GitSCM', 
     branches: [[name: '${gitTag}']],
     userRemoteConfigs: [[url: "git的url", credentialsId: "生成的"]]]
)
  • GitSCM:指定拉取git的源码(必填

  • doGenerateSubmoduleConfigurations : boolean(可选)

    • 删除了用于测试 git 子模块版本组合的工具。在 git 插件 4.6.0 中删除。忽略用户提供的值,并始终用作其值。false
  • submoduleCfg(可选)

    删除了用于测试 git 子模块版本组合的工具。在 git 插件 4.6.0 中删除。忽略用户提供的值,并始终使用空值。

  • extensions:扩展为不同用途添加新行为或修改现有插件行为,帮助用户更精确地调整插件行为以满足使用需求。参数项比较多,挑一些常用的说明一下。(可选)

    • $class: ‘CloneOption’:用于定义clone时的一些参数配置。
      • depth:int类型,设置浅克隆深度,通常设置为1用于加快拉取,如果想要常规clone,则删除此配置项。
      • noTags:bool类型,取消选择此选项可在没有标签的情况下执行克隆,从而在您只想访问 refspec 指定的内容时节省时间和磁盘空间。
      • reference:String类型,指定包含存储库的文件夹,Git 将在克隆操作期间将其用作参考。如果文件夹在执行克隆的控制器或代理上不可用,则将忽略此选项。
      • shallow:bool类型,执行浅克隆,这样 git 就不会下载项目的历史记录,可以节省时间和磁盘空间。
      • timeout:int类型,指定克隆和获取操作的超时时间(以分钟为单位,默认值:10)。
  • branches:指定要构建的分支相关的标识信息。(必填

    • name:String类型,如果您想跟踪存储库中的特定分支,请指定分支。例如master,一般配合参数传递过来。不过里边不仅仅支持分支名字的定义,还支持如下类型:

      • <branchName>:指定要检出的分支,例如master。
      • <tagName>:指定要检出的tag,例如v0.0.1。
      • <commitId>:检出指定的提交,例如:5062ac843f2b947733e6a3b105977056821bd3525062ac84

      需要注意的是:如果使用commitID进行构建,而且是一个过去的ID,那么depth: 1需要去掉,否则总是会报错。

  • userRemoteConfigs:指定git仓库相关的信息(必填

    • url:String类型,指定 git 存储库的 URL 或路径。以下是有效 git URL 的示例:

      • ssh://git@github.com/github/git.git
      • git@github.com:github/git.git (short notation for ssh protocol)
      • ssh://user@other.host.com/~/repos/R.git (to access the repos/R.git repository in the user’s home directory)
      • https://github.com/github/git.git

      建议统一使用https风格,这样日常使用时便于跳转。

    • credentialsId:String类型,用于检查源的凭据,通常只需要写明凭据的name即可。

    • name:String类型,存储库的 ID,一般情况下用不到。

  • gitTool:String类型,指定git命令的路径,通常情况下,git都是系统全局可用的,因此此参数可忽略。(可选)

四、测试

1、复制 commit id

jenkins pipline 拉取git历史版本

2、测试使用分支启动

2.1、master分支

name 和 tag 是生产 Docker 镜像需要的不影响

jenkins pipline 拉取git历史版本

2.2、结果

jenkins pipline 拉取git历史版本

3、测试 commit id 启动

3.1、commit id

jenkins pipline 拉取git历史版本

3.2、结果

jenkins pipline 拉取git历史版本

之前的教程

CICD与DevOps

jenkins使用docker安装保姆级教程(面向小白教程,最新最全,全图文)2022-8-1,不会docker也没关系

使用jenkins+gitee创建docker镜像并运行文章来源地址https://www.toymoban.com/news/detail-456331.html

本文参考

Jenkins的pipeline实践之GitSCM参数配置项详解原创 - 码农教程 (manongjc.com)

使用jenkins+gitee创建docker镜像并运行

到了这里,关于jenkins pipline 拉取git历史版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Jenkins-Pipline实现原理

    本文仅探讨jenkins pipline 的原理,是流水线的一个demo版本实现,不能代表Jenkins pipline的具体实现,仅供参考。 Jenkinsfile流水线是Jenkins CI/CD工具中用来定义、构建和管理软件交付流程的一种声明式文件。 它允许将整个软件交付流程以代码的形式进行描述,从而实现对软件交付过

    2024年02月15日
    浏览(9)
  • 将项目复制到新电脑之后, 无法通过git 进行拉取代码/查看历史提交记录等操作

    将项目复制到新电脑之后, 无法通过git 进行拉取代码/查看历史提交记录等操作

    将项目代码整体打包到新环境(新电脑), 在idea/pycharm下载好git相关插件并打开项目之后, 通过git拉取代码失败(gitlab/git/gtee) 最近因工作原因需要讲电脑上的代码迁移到新电脑上, 但是将idea以及git插件等配置好之后, 打开项目, 发现无法查看之前的提交记录, 即使点击刷新也无法查

    2024年02月04日
    浏览(13)
  • Jenkins中使用pipeline进行git拉取和推送

    Jenkins中使用pipeline进行git拉取和推送

    点击 Pipeline Syntax 选择 git:Git 或 checkout:xxxxxx ,然后选择下方 -none- 处已经添加的用户名跟密码,若未添加,则使用下方 Add 进行添加 在下方使用 Generate Pipeline Script 进行语法生成,如下: 生成的格式为: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 即为我们需要的用户字符串 pipeline的使用案

    2024年02月16日
    浏览(9)
  • jenkins构建pipline无法执行shell命令原因

    jenkins构建pipline无法执行shell命令原因

    新的服务器上,新安装的jenkins,在上面创建了一个pipline项目,脚本里有shell命令,但是jenkins每次执行都卡住,经过尝试, 无论多简单的命令都执行不了 ,cp,mv等都不行,只有echo能执行。 以为是服务器问题,于是删除该虚拟机重装。 重新把环境安装好,再把一模一样的p

    2024年02月16日
    浏览(5)
  • Git | 如何git clone 历史版本

    Git | 如何git clone 历史版本

    首先git clone 最新版本 再通过git checkout id号 可以退回历史版本 可以在提交里面,找到需要版本的id号

    2024年02月02日
    浏览(11)
  • 03-git切换历史版本

    03-git切换历史版本

    目录 一、查看历史版本 二、切换上一个版本 三、切换原来的版本  有三个历史版本:  当前版本:     HEAD ( 指向master的一个指针叫HEAD ) 上一个版本:  HEAD^ 上上个版本:HEAD^^ 第100个版本:HEAD~100 回到上一个版本: 切换到原来版本成功:  注意: 如果切换到旧版本,忘记了

    2024年02月11日
    浏览(5)
  • git 03(切换历史版本)

    git 03(切换历史版本)

    目录 一、查看历史版本 二、切换上一个版本 三、切换原来的版本  有三个历史版本:  当前版本:     HEAD ( 指向master的一个指针叫HEAD ) 上一个版本:  HEAD^ 上上个版本:HEAD^^ 第100个版本:HEAD~100 回到上一个版本: 切换到原来版本成功:  注意: 如果切换到旧版本,忘记了

    2024年02月11日
    浏览(10)
  • idea中回退git历史版本并删除历史提交记录

    idea中回退git历史版本并删除历史提交记录

    本篇文章主要介绍git在idea中的回退历史版本,适用场景为代码提错分支、正常回退版本都可适用。 !!!回退前先检查一下本地分支是否和远程分支对应,否则会失败!!! 1,打开idea中git历史提交窗口 快捷键 alt + 9 (有改动则是自己改的快捷键) 2,选择要回退的版本拷贝版

    2024年02月11日
    浏览(10)
  • centos安装Jenkins并拉取git远程仓库的代码进行自动化构建部署

    centos安装Jenkins并拉取git远程仓库的代码进行自动化构建部署

    在linux上安装jenkins的前提条件是已经安装了jdk、maven、git 这里是在centos上直接安装openjdk11 查看是否安装成功 安装好后,看下版本 首先下载maven安装文件,此处我选择的版本是3.6.3,下载地址, 下载后上传到服务器目录/usr/local目录下 修改目录名称为maven3, 所以服务器中maven的

    2024年02月04日
    浏览(13)
  • jenkins 2.346.1 从git拉取后自动构建部署springboot maven项目

    jenkins 2.346.1 从git拉取后自动构建部署springboot maven项目

    1、jenkins官网下载 jenkins2.346.1版本(2.346之后不支持java8) Jenkins 的安装和设置 下载的war包通过 java -jar jenkins.war可运行 也可下载安装版本直接安装 http://localhost:8080,端口号8080根据安装时的设定进行对应的变更,安装后需要等待一段时间。 确认发布应用的服务器安装了java g

    2024年02月02日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包