手把手教你用 Piplin 给 Laravel 项目做自动化的持续集成与部署
简介
Piplin(灵感来自于"pipeline",读作/ˈpɪpˌlɪn/ 或 /ˈpaɪpˌlaɪn/)是一款免费、开源的持续集成与部署系统,适用于软件的自动化构建、测试和部署相关的各种应用场景。
Piplin的github地址:https://github.com/Piplin/Piplin
演示地址:http://demo.piplin.com/ 感兴趣的朋友可以使用自己的Github账号或者我们提供的演示账号登录体验。
我们的演示账号信息如下:
用户名:piplin
密码:piplin
项目设置
假设我们的服务器情况如下:
- Piplin宿主机:127.0.0.1
- 构建服务器:192.168.75.40
- 远程服务器:192.168.10.10
一、创建项目
创建成功后系统会自动进入项目详情页
二、设置构建计划
1、添加构建服务器
2、将项目公钥添加到构建服务器
ssh root@192.168.75.40
把以下内容追加到 ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7E0tQBis2bl18L5bl0HsY+HYK4aYnF8bOOY+TnK5+QyWY/kfnza2P7mtU+B2bnEeihOUnty3oj+D2Uc8EtpHfe1BzjxB9iLgg0Fd5UZZ16ggBWnWmYk8u/Bq6AwSDlb/wWtBrmzWDwE8seFj7PMDEXeKj2fu0kVayqMKkhzhJc/WXVJ99wDnmrDYCBd4R8w6x2W5p/rkf+bWE8TIY7DpO4KRLspz+8MoXSUo6XEyF+gOy035oVwu3lSTXZ3luCSXVvHidGwtexAMRZPY4abi+X3DkYNjly0m6+Ku5GGdwfIAbbGdYfPwaERmjPKeCQTgOnO+EQppswE2ADCp+tpfj worker@piplin
3、开始测试构建服务器的连通状态
一旦失败了,会有提示出错信息,这里提示项目路径没有创建
我们登录这台服务器,创建一下项目路径
$ mkdir -p /var/www/piplin
再次开始测试,测试成功
4、设置出品定义
5、设置构建步骤,我们在开始构建的后置步骤做composer install,安装依赖包。
6、添加后置命令:
7、单元测试:这里我们简单做一下语法和注释的检查
8、生成tar包
9、导出tar包
10、开始第一次构建
构建成功,会有构建物产生(这里我们先不创建构建版本)
三、设置部署计划
1、添加部署环境:
2、往该环境里添加一台服务器
填写服务器信息
3、同样,这里也需要往这台服务器添加项目公钥,并创建项目路径
ssh root@192.168.10.10
$ mkdir -p /var/www/piplin
把以下内容追加到 ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7E0tQBis2bl18L5bl0HsY+HYK4aYnF8bOOY+TnK5+QyWY/kfnza2P7mtU+B2bnEeihOUnty3oj+D2Uc8EtpHfe1BzjxB9iLgg0Fd5UZZ16ggBWnWmYk8u/Bq6AwSDlb/wWtBrmzWDwE8seFj7PMDEXeKj2fu0kVayqMKkhzhJc/WXVJ99wDnmrDYCBd4R8w6x2W5p/rkf+bWE8TIY7DpO4KRLspz+8MoXSUo6XEyF+gOy035oVwu3lSTXZ3luCSXVvHidGwtexAMRZPY4abi+X3DkYNjly0m6+Ku5GGdwfIAbbGdYfPwaERmjPKeCQTgOnO+EQppswE2ADCp+tpfj worker@piplin
4、测试服务器连通状态
5、开始设置部署步骤
5.1、在安装新版本的后置命令中设置
5.2、解压缩安装包,并将它删除
5.3、更新缓存
6、部署步骤全貌
7、生成构建版本
8、构建版本生成成功,从这里可以直接进入部署
9、系统会自动选中构建版本
10、部署成功
11、让我们进入192.168.10.10看看项目的部署情况
牛批了
很Nice
很实用的工具
只能给laravel用吗? 比如ci框架或者tp 又或者 原生项目 用着是不是挺麻烦?
@keer 不限制laravel的,教程只是举例,而且也没有提到有laravel特有的东西。
@phecho
创建发布版本提示成功, 但页面没有看到开始部署按钮.
@dinghua 加qq群: 656868
升级了最新的代码, 已经解决了
给大佬一个赞
正需要这个 感谢大佬分享
牛逼,感谢大佬分享!
这个和Jenkins 一样的东西吧
卡住了 ,连通状态一直转圈显示测试中
请问一下,supervisor 启动服务失败是什么原因导致的?