gitlab+jenkins完美结合实现自动构建!!!

11,415 阅读3分钟

最近响应公司的政策,终于将N个SVN的项目全部迁移至gitlabgitlab是公司内部搭建的一个私有的仓库,迁移至gitlab后,为了更规范化,和小伙伴们制定了一些规则:

  • 默认保护的分支是 masterdevelop 分支
  • 任何人不允许在 masterdevelop 分支进行开发提交代码(当然 gitlab 有设置,masterdevelop 是不允许进行提交代码的)
  • 所有的开发任务,开发人员另起一属于自己的分支进行需求开发,开发完成后将当前分支推送到远程
  • 开发完成后,需求开发人员在线上发起代码合并请求
  • 管理员收到合并请求后,进行CodeReview,对于合格的代码进行确认合并至develop分支
  • 项目所有的需求开发完成,由管理员将所有代码合并至master进行项目构建

1. gitlab项目创建

  • 进入gitlab,点击 新建项目 myDemo
  • 输入项目名称及项目描述,完成创建此时仓库是空的
  • Git 全局设置
git config --global user.name "UU"
git config --global user.email "UU@qq.com"
  • 初始化本地仓库
git clone http://***.***.**.**:9999/group/myDemo.git
cd myDemo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
  • 创建 develop 分支,并推送到 origin
git checkout -b develop
git push origin develop
  • 此时远程已经有了 masterdevelop 分支
  • 设置默认分支为 develop 分支
  • develop 设置为保护分支,并将 master 和develop允许推送到 设置为 No one

设置No one主要是以要求每开发人员都提交合并请求, 将更改提交到受保护的分支

2. gitlab与Jenkins自动构建

  • 新建一个Jenkins的项目

2.1 常规配置

添加构建参数 git Parameter , 可以在主动构建的时候,选择需要构建的分支

2.2 配置源码管理

选择git,将gitlab仓库的地址复制到这里,并添加git账号密码

2.3 构建触发器

通过gitlab的合并请求事件触发Jenkins的自动构建 首先,在Jenkins配置触发器,选择Build when a change is pushed to GitLab 然后,在gitlab进行集成配置, 进入设置 - 集成 将Jenkins处的 GitLab webhook URL: http://*.*.*.*:9999/jenkins/project/myDemo复制到该链接(URL)处, 将Jenkins处的Secret token 复制到安全令牌 处 并选择合并请求事件, 然后添加钩子完成配置 这个时候可以在gitlab选择Merge requests events进行模拟合并请求事件

2.4 构建环境

Jenkins在构建的时候要进行项目依赖的安装,所以Jenkins的服务器环境必须要nodejs,并且Jenkins要进行nodejs配置

2.5 构建

这里构建我是通过windows batch command 命令进行构建的

npm i
npm run bulid

2.6 构建后的操作

做构建后的自动部署之前,需要进行相应的配置:

  • 需要部署的服务器做好文件夹共享
  • 需要在Jenkins上配置部署服务器的信息 因为我当前的Jenkins是window系统,所以我选择的是send build artifacts to a windows share(需要Jenkins安装插件Publish over CIFS) 接下来需要将Jenkins构建后的文件部署文件放到指定服务器的指定文件夹内,完成部署

到此gitlab和Jenkins的配置就完成了~~

3. 自动构建验证

  • Gitlab 进行Merge操作
  • Jenkins会发现项目已经开始构建

文章的最后

微信关注公众号【前端UU】,定期阅读好文哟~

原创不易,转载请注明作者和链接哟~