笔者之前为项目搭建了简易的CI环境,出于顾虑到以后可能还会有所需求,特此摘记下搭建的过程以及笔者遇到的一些问题:
笔者的开发环境
PHP 7.0
Apache 2.4
ThinkPHP 5.0
Composer 1.6.5
Windows Server 2008 R2 OS
因为是TP5的项目,例行地在部署服务机上安装Composer和PHP(版本最好在5.6上,最主要是Composer对5.6以上的会更友好)。
项目基于.Git版本控制,源码在我们实验室的GitLab服务器中,于是CI也是基于Gitlab提供的CI(这里不得不说Gitlab对CI是真的友好)。下载Gitlab提供的CI Runner:
这里笔者关于下载安装简单描述下:
首先确定安装的盘符路径,新建文件夹(笔者命名为Gitlab-Runner),将之前下载好的Runenr安装包放入刚新建的文件夹中并更改名称为__gitlab-runner__,并在此目录下打开命令行(Win+R => cmd),输入: gitlab-runner install,等待安装好后,输入 gitlab-runner status 可以查看 Runner 的状态,输入gitlab-runner start为启动Runner,gitlab-runner stop为停止Runner,gitlab-runner uninstall为卸载Runner
然后需要将Runner与Gitlab的项目关联起来。依旧是在Runner的目录下打开命令行,输入:gitlab-runner register,随后进入进入关联的界面,会依次要求输入:关联的Gitlab服务器地址、项目CI的密匙(见下图指示)、对此Runner的描述(Runner的别名)、此Runner的标签四项。(当然我们也可以通过在命令后面以参数的形式直接将四项填入)
注册好后,可以通过命令:gitlab-runner verify 检查Runner是否与Gitlab连接上。 如果连接好后,我们的服务器端基本环境已经基本搭建好了。
当我们配置好服务端的基本环境后,我们紧接着需要在源码中插入用来告诉CI我们持续集成需要执行的任务的脚本文件.gitlab-ci.yml。这个文件就决定了CI会自动为我们程序执行哪些步骤,例如:自动执行build,unit test之类的,所以这个文件比较重要,我们最好在本地将所需要的脚本都执行一遍,确定我们的项目在构建、部署、测试期间都能正常进行。由于笔者的项目是TP5的项目,采用的是基本的Composer 命令获取依赖包、php的命令构建项目以及tp5的命令执行测试。下面有笔者的脚本文件内容的简易版本。
到这一步,基本上初期我们的CI已经搭建的差不多了,接下里需要做的,对我们的脚本内容进行完善,或者是在项目开发成本允许的前提下,使用Docker运行我们的Runner(笔者此次搭建的是基于 Shell 的运行环境,会比较依赖我们的系统,对于迁移十分不友好)。
附:
右键在当前目录打开cmd的解决方案之一:
新建一个bat文件,将下列的代码拷贝放入。然后右键选择__管理员身份__运行(Windows 10 可以选择使用 PowerShell 运行)