首页 > 其他分享 >git 提交后Jenkins自动构建、并发布服务

git 提交后Jenkins自动构建、并发布服务

时间:2022-11-13 20:44:16浏览次数:41  
标签:git 发布 构建 Jenkins 环境变量 分支

现状:当前开发在迭代中完成相关feature功能开发之后到发布到dev环境的流程是:

  1. 提交代码到git对应的分支
  2. 需要登录域账号去Jenkins服务查找相关的项目任务,再手动选择分支进行构建。这里可能还涉及到
    • 没有Jenkins项目权限,需要找其他相关开发开权限
    • 第一次没有分支,需要到配置构建步骤里面去添加相关分支
  3. 等待构建完成之后手动登录OneOps系统选择对应的项目,选择对应的nuget包版本进行发布
    顺畅情况就是上面三步,这三步每一步开发都得关注结果,顺畅下来少则3、5分钟,如果打包失败可能还需要到Jenkins服务上查看失败原因。再次修改项目代码,再次重复上面的步骤。

期望改进:

解放开发,让其只关注于代码提交,提交后让Jenkins自动构建、构建完成后自动发布到ops系统,并通知结果(包括构建失败通知、发布成功通知)

实现步骤:

Jenkins项目构建步骤修改

  1. 配置手动构建分支参数

  2. 配置git项目地址,以及手动打包时候选择分支参数,这里的${Branch}分支参数来源于上面步骤的choice参数。注意此处的${Branch}参数项目MsBuild时候会用到,因此后面git push自动构建时候需要生成改环境变量。

  3. 构建触发配置,选择Build when a change is pushed to GitLab。这里我们勾选如下几个选项
    并且设置了只有dev以及test相关的分支才触发自动构建,过滤master以及online分支

  • Build on Merge Request Events
  • Build on Push Events
  • Rebuild open Merge Requests
  • Enable [ci-skip]
  • Accept merge request on success
  • Filter branches
  1. 构建环境,设置了版本为${GIT_BRANCH}.${BUILD_NUMBER}两个系统环境变量,并且设置为构建显示名称——分支名称+构建序号

并且问了兼容手动选择分支构建以及git push自动构建,我们通过windows batch command 导出了环境变量Branch,如果是git push自动构建,我们就将gitlabBranch环境变量赋值给Branch变量。并导出到opsevn.properties文件中。
5. 构建步骤中再次注入opsevn.properties文件中的环境变量。再次通过Properties Content 注入一些自动发布、通知python脚本中需要使用Jenkins环境变量,包括:

  • clusterId 发布集群id
  • serviceId 发布服务id
  • esbName 服务名称
  • buildUrl 构建url地址
  • buildNumber 构建版本号
  • buildCase 构建方式

再次通过windows batch command执行编译构建,并且获取构建是否成功。将状态带入到python脚本。以便后续通知使用。
6. gitlab中webhook设置,将上面步骤3图中的GitLab CI Service URL 加入到webhook。

  1. python脚本 AutoOps.py 获取传入的构建参数后,做一下步骤处理:
  • 判断传入相关参数并校验
  • 获取构建操作人
  • 获取构建方式
  • 判断构建状态是否成功
  • 失败发布Markdown提醒到企业微信群,可以自己查看失败原因
  • 构建成功注入cookie
  • 通过集群、服务、构建版本号获取构建的nuget包
  • 调用接口发布nuget服务包
  • 发布成功Markdown消息提醒到企业微信群,可以直接查看发布结果


ps:需注意

  1. 环境变量的导出、导入方式
  2. 批处理中获取构建结果是否成功

标签:git,发布,构建,Jenkins,环境变量,分支
From: https://www.cnblogs.com/rpoplar/p/16886884.html

相关文章

  • 使用JAX构建强化学习agent并借助TensorFlowLite将其部署到Android应用中
    在之前发布文章《一个新TensorFlowLite示例应用:棋盘游戏》中,展示了如何使用TensorFlow和TensorFlowAgents来训练强化学习(RL)agent,使其玩一个简单棋盘游戏“Pl......
  • 在Visual Studio 中使用git系列文章目录
    在VisualStudio中使用git——什么是Git(一)在VisualStudio中使用git——给VisualStudio安装git插件(二)在VisualStudio中使用git——使用git管理源代码(三)在......
  • Helm部署和体验jenkins
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos运行在Kubernetes上的Jenkins下图来自rancher官方博客,在kubern......
  • git合并操作,cherry-pick,
    合并分支有多个分支,a,b,c如果想把a分支合并到b分支上:#切换到b分支gitcheckoutb#合并a分支到当前分支(b)gitmergea#查看是否有冲突,解决冲突后提交gitstatus......
  • GIT重新学习
    名词解释HEAD表示当前版本HEAD^表示上一个版本HEAD^^上上一个版本HEAD~100上100个版本gitreset--hardHEAD^丢弃当前版本返回上一个版本--soft是将修改放回......
  • 云原生之旅 - 11)基于 Kubernetes 动态伸缩 Jenkins Build Agents
    前言上一篇文章 云原生之旅-10)手把手教你安装JenkinsonKubernetes 我们介绍了在Kubernetes上安装Jenkins,本文介绍下如何设置k8spod作为Jenkins构建job的agen......
  • 读《构建之法》有感3
        在本周学习了《构建之法》的第三章,第三章里主要是对如何成为一个合格的软件工程师的一些基本条件。    这章主要讲述了评价软件工程师的水平的主要方......
  • Windows系统中使用GIT通过SSH连接Github
    打开GitBash运行以下代码:gitconfig--globaluser.name"XXXXX"#这里XXXXX为github的用户名gitcongif--globaluser.email"[email protected]" #github的注册邮箱......
  • git的使用
    1、安装之后查看git的版本号在windows下的安装---默认装到C盘比较小TortoisetGit---git的一个客户端(可选选装--提供一个可以操作的界面)TortoisetGit-LanguagePack(客......
  • Nginx构建高可用集群
    构建并维护基于Nginx分发器的高可用Web集群。实现分发器故障切换,数据服务器自动容错,保证Web服务器在宕机情况下业务的连续性拓补图如下配置步骤1、配置nginx集群......