jenkins gitlab php laravel 自动化搭建

为什么会选择自动化构建?

因为想偷懒了。

我先把我遇到问题说下:

  1. 一个项目如果有多个分支,push到jenkins上 会自动切换分支并构建 但是我想构建我指定分支,以后push 也是。
  2. 所有项目只有 维护一个vendor.zip 怎么移动到各个项目下
  3. test beta 环境 以什么规则才能指定构建当前环境。

背景:

  • centos7
  • 微服务架构

准备

  • jdk
  • 8080端口开启(如果第一次请到阿里云安全组配置)
  • jenkins
  • jenkins 插件类别

    额外插件list:

    • Gitlab Hook Plugin
    • Gitlab Authentication plugin
    • Gitlab Merge Request Builder
    • GitLab Plugin
    • Git Parameter Plug-In

开始表演:

problem One:

一个项目如果有多个分支,push到jenkins上 会自动切换分支并构建 但是我想构建我指定分支,以后push 也是。

例如: gitlab 上面有 studends 项目
branch :
1. master
2. dev_students
3. beta_students

操作: dev_students ,beta_students 依次 被人push 一下jenkins上面构建是哪个分支?
答案: 是最后一个beta_students 会显示为最终构建。

Solve:
这里我提一下请求流程:

本地push->gitlab->按照jenkins在gitlab配置 Webhook->出发构建。
这个地方我就想到了,看看gitlab 请求 jenkins请求内容。

如何查看

studends->侧边栏 settings->integrations
在你添加webhook 有edit 点击进入 往下拉就可以看到。

  1. 点击其中第一个:View details

当前页面搜索 Request body
在到当前页面搜索 ref:refs/heads/dev_students(记住这个值)

  1. 点击其中第二个:View details

当前页面搜索 Request body
在到当前页面搜索 ref:refs/heads/beta_students(记住这个值)


等等(思考下,请注意我们的第一个问题题目。)

此时gitlab就没有事情了。我们来看到jenkins 配置jobs能做点什么。

我们来看到 一下步骤

  1. jobs 设置
  2. 点击 GitLab webhook
  3. 点击高级
  4. 看到 Allowed branches
  5. 点击 Filter branches by regex 填入正则 (dev_.*)$ 点击应用。
  6. 测试一下切换到 beta_students 。

problem Two:

所有项目只有 维护一个vendor.zip

例如:
ProjectList:

  • Students
  • Teacher
  • School

有很多vendor的话,不方便管理。
我们就集中添加一个大而全的vendor(个人想法,不喜勿喷)。

Solve:

例如:把大而全的vendor.zip 放入/www/tools/vendor.zip 怎么移动到各个项目下

这个时候怎么移动它放入到我们构建项目当前目录下
想想我们平时在linux 环境下 会使用shell语言  cp 然后 mv 到tageFile 下
其实jenkins 也是可以的。

步骤:
前提:多项目环境下(shell 脚本需要动态传递参数)。

  1. 上传写好的shell 脚本
  2. 把 目录地址放入 jobs 配置文件 执行 shell 框里。
  3. 搜索 参数化构建过程 添加参数
  4. 选择 文本类型
  5. 填写名称 大写(例如:TAGEMVFILEPATH 目标路径)
  6. 在执行shell 这样写(注意 /var/www/shell/jenkins/mvAndUnzip.sh $TAGEMVFILEPATH)
  7. 然后 点击 build with Parameter 就显示了。
    这里写图片描述

记得在此之前配置一下读写群,然后删除一下工作空间,在构建试试。(脚本在最后面)
这个问题就结束了。

problem Three:

test beta 环境 以什么规则才能指定构建当前环境。

Solve:

其实这个地方就是一个规则问题:
前提是你需要 test beta 环境。

设计含义:
branch :

  1. master(正式)
  2. beta_projectName(公测)
  3. dev_projectName(开发)

测试环境就推送 dev_project
预上线环境就推送 beta_project

通过规则就可以

通过问题一解决

这样设计就是不会弄混,一码归一码。
这样就可以衍生 前端代码 。
根据branchName 前缀规则 指定打包。

———积分csdn 必须要一份,没有办法————-
shell脚本-动态生成.env
shell 动态移动 解压 vendor

参考:
http://www.chenyp.com/2017/08/12/jenkins-gitlab/

配置端口
https://www.jianshu.com/p/180fb11a5b96
http://flyer0126.iteye.com/blog/2012375

全局
https://www.wolfcstech.com/2018/03/26/gitlab_trigger_jenkins_build/

删除jenkins

sudo service jenkins stop
sudo yum clean all
sudo yum -y remove jenkins
sudo rm -rf /var/cache/jenkins
sudo rm -rf /var/lib/jenkins/

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值