• Jenkins一次任务构建中如何处理多个git仓库


      最近在公司运维同学的推动下,前后端部署使用docker镜像方式实施。前端在实施的时候遇到了问题:如何在一次jenkin任务构建使用两个gitlab仓库的东西(我们前端的代码和配置存在于两个不同的gitlab仓库),我们需要在构建docker镜像的时候,将构建代码和配置全部放到镜像中去,镜像启动的的时候再去根据不同的环境使用不同的配置(创建一个构建代码中默认配置<dist文件中的dynamic.js>的软链指向具体环境配置文件<config文件夹中的test.js , 比方说是测试环境>),然后在启动镜像中的nginx。所以我们需要在jenkins构建任务中执行一个脚本:将配置和前端构建文件全部复制到镜像中去。

      jenkins有一个插件,叫 Multiple SCMs plugin,插件介绍:This plugin enables the selection of multiple source code management systems for a build. For example, it enables checking out the source code from one SCM while checking out legacy or third-party code from another.也就是说:这款插件支持多个版本控制管理源,你可以在一次构建中选择多个仓库进行构建(同时支持git和svn)。确保jenkins安装该插件后,参考如下:

      1、在源码管理中选择 Multiple SCMs

       2、选择你的代码仓库类型,进行添加,比如git

       3、填写第2步添加的仓库属性

      

       注意第3步中的红色框:图中的code和config是2个文件夹,对应你的源代码仓库的个数,拿我们当前的情况来说,在当前jenkins任务的工作区间下,分别建立code和config文件夹,将第一个仓库(前端代码)拉取至code目录下,将第二个仓库(前端所有配置)拉取至config目录下。如果没有添加文件夹进行区分,会出现前一个仓库将后一个仓库覆盖的问题(如果两个仓库的软件是一样的,比如都是git或者都是svn),造成我们构建的时候找不到文件。

      构建当前任务后,在当前任务的工作区间查看2个仓库的内容是否拉取成功:

    [szhq@dev01 workspace]$ ls -l
    total 464
    drwxrwxr-x 8 szhq szhq   4096 Apr  2 11:05 code
    drwxrwxr-x 2 szhq szhq   4096 Apr  2 11:05 code@tmp
    drwxrwxr-x 4 szhq szhq   4096 Apr  2 11:05 config
    drwxrwxr-x 2 szhq szhq   4096 Apr  2 11:05 config@tmp

      查看code目录:

    [szhq@dev01 workspace]$ cd code && ls -l
    total 444
    drwxrwxr-x  2 szhq szhq   4096 Apr  2 11:05 build
    drwxrwxr-x  2 szhq szhq   4096 Apr  2 11:05 config
    -rw-rw-r--  1 szhq szhq   2326 Apr  2 11:05 index.dev.html
    -rw-rw-r--  1 szhq szhq   2329 Apr  2 11:05 index.prod.html
    -rw-rw-r--  1 szhq szhq   3213 Apr  2 11:05 package.json
    -rw-rw-r--  1 szhq szhq   1120 Apr  2 11:05 README.md
    drwxrwxr-x 11 szhq szhq   4096 Apr  2 11:05 src
    drwxrwxr-x  5 szhq szhq   4096 Apr  2 11:05 static
    drwxrwxr-x  4 szhq szhq   4096 Apr  2 11:05 test
    -rw-rw-r--  1 szhq szhq 414823 Apr  2 11:05 yarn.lock

      查看config目录:

    [szhq@dev01 workspace]$ cd config && ls -l
    total 8
    -rw-rw-r-- 1 szhq szhq  670 Apr  2 11:05 README.md
    drwxrwxr-x 2 szhq szhq 4096 Apr  2 11:05 src

      至此,一个jenkins任务中支持多个库的问题就完美解决了。。。写在最后,脑洞大开一下:针对后端微服务,这个插件是支持同时构建多个微服务模块的

      

  • 相关阅读:
    CSS对 网页进行布局
    myeclipse配置tomcat服务器
    JDBC链接数据库
    java集合框架
    java日期操作
    二叉树的最近公共祖先
    二叉树的深度
    飞地的数量
    岛屿数量
    岛屿的最大面积
  • 原文地址:https://www.cnblogs.com/hanshuai/p/12619232.html
Copyright © 2020-2023  润新知