通过PHP测试构建流水线,自动化进行检出代码、编译构建、运行单元测试、输出结果记录、测试统计等能力,减少人工干预,增强项目可见性,并且有效的日志能够帮助开发者更容易发现并解决存在问题。
步骤一:新建测试构建流水线
登录流水线 Flow控制台,单击右上角新建流水线。
在弹出的选择流水线模板页面,选择PHP · 构建、部署到阿里云ECS/自有主机,单击创建。
步骤二:配置流水线源
在流水线源阶段,单击添加流水线源。
选择示例代码源,代码类型为PHP,单击添加。
步骤三:配置测试与构建
流水线支持用户在不同测试阶段,选择不同的构建集群与构建环境,进行构建任务。
配置基本参数。
参数
说明
任务名称
您可自定义任务名称,一般保持默认即可。
构建集群
支持以下构建集群:
构建环境
支持以下构建环境:
指定容器环境(云效默认构建集群):流水线 Flow在构建机器上启动指定容器,在单容器环境进行构建。云效提供官方常用镜像供选择使用、您也可以指定自己的镜像作为运行环境。
默认VM环境(仅私有构建集群支持):须选择指定构建节点。流水线 Flow会直接在构建机器上安装环境并执行任务,为了提升任务构建速度建议提前在构建机器上安装好相应SDK和环境。
默认环境(云效默认构建集群/私有构建集群):流水线 Flow会根据任务类型默认使用不同的容器镜像,预装相应的SDK和环境,默认镜像不可修改(Deprecated)。
说明任务执行期间,流水线任务构建环境分配给用户使用,构建环境的使用权归属用户,任务执行脚本由用户自定义。
下载流水线源
开启下载流水线源后,您配置的源文件将会被下载至对应的工作目录下。支持以下三种方式:
下载全部流水线源
不下载流水线源
下载部分流水线源
配置任务步骤。
指定容器环境/默认VM环境
单元测试
首先在
中添加步骤,选择 ,配置执行命令。然后在添加步骤,选择
,配置单元测试报告的参数。
参数
说明
步骤名称
自定义步骤名称。
容器镜像地址
直接输入,仅指定容器环境填写。
请提供完整镜像地址,形如build-steps-public-registry.cn-beijing.cr.aliyuncs.com/build-steps/php:版本号。
执行命令
请在您的代码库里指定正确的php版本,否则运行命令可能报错。
mkdir report php --version wget https://rdc-public-software.oss-cn-hangzhou.aliyuncs.com/composer/2.1.5/composer.phar -O /usr/local/bin/composer composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ composer install composer require --dev phpunit/phpunit:^10 vendor/bin/phpunit --testdox-html ${PROJECT_DIR}/report/index.html echo "==================" cat report/index.html echo "=================="
测试报告文件路径
测试报告文件路径,必须指向一个文件。该文件所在目录中的所有内容都会被一起上传。例如report/index.html。
测试工具
测试工具/框架,选择Php-UnitTest。
测试用例失败,停止流水线
有失败单测用例时,是否停止流水线运行。默认为true。
PHP构建
在PHP构建阶段,您可以通过构建集群选择不同的构建环境,完成构建任务。
配置构建环境参数与相关的执行命令。
参数
说明
容器镜像地址
请提供完整镜像地址,形如 build-steps-public-registry.xxx.cr.aliyuncs.com/build-steps/alinux3:latest,仅指定容器环境填写。
使用私有镜像仓库
添加服务连接,请参考服务连接管理,仅指定容器环境填写。
下载流水线源
开启下载流水线源后,您配置的源文件将会被下载至对应的工作目录下。
执行命令
PHP默认执行命令为php --version。
在构建物上传任务步骤,配置上传方式以及相关参数。
选择以下上传方式并配置具体参数。
组织私有通用制品仓库(制品将上传Packages统一管理)
参数说明:
参数
说明
添加服务连接
单击添加服务连接,根据界面提示创建流水线 Flow到制品仓库 Packages的服务连接。更多信息,请参见服务连接管理。
仓库
添加服务连接后,可选择Packages中的通用制品仓库作为目标仓库。
说明关于通用制品仓库的更多信息,请参见通用制品管理
制品名称
用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用
Artifacts_${PIPELINE_ID}
。您可自定义构建物的名称(如target1
)。制品版本
版本用于唯一标识您的制品文件,因此同一制品不允许推送重复版本。建议使用动态变量形式,比如
${DATETIME}
。打包路径
设置起始位置为项目文件夹的相对路径(如
target/
),可以设置多个文件路径。制品中包含打包路径的目录
如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为
true
。配置示例:
归档至云效公共存储空间(供后续任务拉取并部署)
参数说明:
参数
说明
制品名称
用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用
Artifacts_${PIPELINE_ID}
。您可自定义构建物的名称(如target1
)。打包路径
设置起始位置为项目文件夹的相对路径(如
target/
),可以设置多个文件路径。制品中包含打包路径的目录
如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为
true
。配置示例:
默认环境
单元测试
在
中添加步骤,选择 ,配置任务相关参数。参数
说明
步骤名称
自定义步骤名称。
请选择PHP版本
根据需求选择预置的PHP版本。
测试命令
根据需求设置PHP单元测试命令。
报告相对路径
根据需求设置输出报告的相对路径地址。
红线信息
根据条件设置判定本任务是成功还是失败。
PHP构建
流水线模板创建后默认使用指定容器环境,单击默认环境后,原有的任务步骤将失效,您需清空原有配置,并重新添加以下任务步骤。
配置相关构建命令。
参数
说明
步骤名称
自定义步骤名称。
PHP版本
根据项目需求选择合适的PHP版本。
执行命令
PHP默认构建命令为php -v。
,配置构建物相关参数。
选择以下上传方式并配置具体参数。
组织私有通用制品仓库(制品将上传Packages统一管理)
参数说明:
参数
说明
添加服务连接
单击添加服务连接,根据界面提示创建流水线 Flow到制品仓库 Packages的服务连接。更多信息,请参见服务连接管理。
仓库
添加服务连接后,可选择Packages中的通用制品仓库作为目标仓库。
说明关于通用制品仓库的更多信息,请参见通用制品管理
制品名称
用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用
Artifacts_${PIPELINE_ID}
。您可自定义构建物的名称(如target1
)。制品版本
版本用于唯一标识您的制品文件,因此同一制品不允许推送重复版本。建议使用动态变量形式,比如
${DATETIME}
。打包路径
设置起始位置为项目文件夹的相对路径(如
target/
),可以设置多个文件路径。制品中包含打包路径的目录
如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为
true
。配置示例:
归档至云效公共存储空间(供后续任务拉取并部署)
参数说明:
参数
说明
制品名称
用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用
Artifacts_${PIPELINE_ID}
。您可自定义构建物的名称(如target1
)。打包路径
设置起始位置为项目文件夹的相对路径(如
target/
),可以设置多个文件路径。制品中包含打包路径的目录
如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为
true
。配置示例:
主机部署
在主机部署阶段,您可以将PHP构建阶段产出的制品部署到主机组的机器上,具体参数配置请参考主机部署。
步骤四:运行并查看目标流水线任务
流程配置完成后,单击页面右上角保存并运行,并在弹出的对话框中单击运行,即开始运行流水线任务。
运行流水线任务完成后,在构建镜像任务节点的右下方单击日志,可以查看到流水线任务的执行过程结果日志。
如果您将构建物上传到组织私有通用制品仓库,您可在制品仓库Packages的对应仓库中查看已上传的构建物,更多信息,请参见NPM 制品管理。