[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用 GitHub Actions 自动化单元测试

你好!

我是系统开发部的松木。

继续上一篇关于 GitHub Actions 的文章,这次我们将讨论 GitHub Actions。

这次的主题是“让我们将 PHP 的 UnitTest 留给 GitHub Actions 来自动化它!”

注意事项

在本文中,我们将假设您正在使用 Docker 构建 Laravel 环境来继续本文。

| |- docker | |- my.cnf | |- docker-compose.yml |

什么是 GitHub 操作?

这一点在之前的文章中已经有过简单的解释,所以请看一下。

使用 GitHub Actions 实现 Larastan 自动化!

使用 GitHub Actions 实现 Larastan 自动化!

环境

码头工人:23.0.1

拉拉维尔:10.x

PHP:8.2

MySQL:8.0

代码内容

这次我们将使用的代码如下。

下面的代码写在“/.github/workflows/unitTest.yml”中。

名称:UnitTest on:push:jobs:unitTest:runs-on:ubuntu-latest 步骤: - 名称:查看代码使用:actions/ [email protected] - 名称:设置 Docker Compose 运行:docker compose up -dworking- directory: ${{ github.workspace }} # 指定仓库根目录 - name:composer install run: docker compose exec -i -t php-fpmcomposer install - name:三十秒 sleep run: sleep 30 - name:运行 PHPUnit 运行: docker compose exec -i -t php-fpmvendor/bin/phpunit

根据上面的代码,我们将解释UnitTest自动运行的机制。

本文还重申了之前 Larastan 文章中讨论的内容。

姓名:

该字段描述要在 GitHub Actions 中注册的工作流程的名称。

输入此内容后,它将显示在 GitHub Actions 屏幕上。

这里,注册了名称“UnitTest”。

如果没有注册,则会注册文件的相对路径。

在这种情况下,它将使用名称“./.github/workflows/UnitTest.yml”进行注册。

在:

您可以决定哪些操作触发工作流程。

这称为“触发器”。

这次使用的代码中,“Push to GitHub”是运行UnitTest的触发器。

除了推送时机之外,您还可以详细设置触发器,例如在创建拉取请求时触发,或者仅在推送指定分支时触发。

职位:

您可以在此项中编写将在工作流程中执行的流程。

例如,要运行UnitTest,需要执行启动Docker、安装composer等命令。

本条目描述了此类操作。

单元测试:

职位创造和职位名称。

您可以使用作业中的 name 键来设置将在 GitHub 的 UI 中显示的名称,但如果您不设置它,它将被替换为作业的名称。

运行:

定义虚拟机类型。

设置虚拟机时,

您可以从三个选项中进行选择: GitHub 托管运行器
、大于 GitHub 托管运行器 的运行器
和 自托管运行器

这次我们将使用第一个 GitHub 托管的运行器(以下简称运行器)。

运行程序有多种类型,您可以从三种类型中进行选择:Linux、Windows 和 macOS。

基本上我觉得使用Linux是没有问题的,但是请根据自己的环境来选择。

这次我使用最新版本的Ubuntu作为虚拟机。

用途:

指定要执行的操作。

这里使用的操作是一个名为“actions/checkout”的模块。

该角色用于使用存储库中的代码。

运行:(第一)

这里我们运行docker compose up -d

由于这次我们要使用docker来搭建环境,所以这里就启动docker。

工作目录:

这指定了要在其中工作的目录。

这次我写的是${{ github.workspace }}

这允许您从默认工作目录获取绝对路径。

使用获取的路径启动 docker。

运行:(第二次)

第二次运行安装 Composer。

该命令正在运行docker compose exec -i -t php Composer install

虽然命令中间写的是php,但是请在这里输入你的php容器的名称

通过编写上述命令,composer install 将在 php 容器中执行。

运行:(第三次)

第三次运行使用 sleep 命令。

该命令正在运行sleep 30

docker compose up后mysql可能还没有完全启动,所以

在这种情况下,UnitTest 无法正常运行,因此我们将进程延迟 30 秒。

运行:(第四次)

单元测试在第四次也是最后一次运行中执行。

与第二次运行类似,UnitTest执行命令是写在php容器内的。

此命令docker compose exec -i -t phpvendor/bin/phpunit请将php您的 php 容器的名称

至此我终于可以运行UnitTest了。

概括

你觉得怎么样?

您可以使用 GitHub Actions 自动化许多事情,

实施起来会很困难,但是一旦实施了,你的工作效率一定会提高!

非常感谢。

最后

我们为我所属的系统开发部门开设了服务网站“SEKARAKU Lab”。
Beyond是从服务器设计搭建到运营的一站式服务,所以如果您在服务器端开发方面遇到任何问题,请随时联系我们。

● SEKARAKU 实验室: https://sekarakulab.beyondjapan.com

如果您觉得这篇文章有帮助,请点赞!
4
加载中...
4 票,平均:1.00 / 14
507
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

松木

我喜欢扑克和橄榄球。
漫威喜欢“浩克”

我的座右铭是专注×时间+运气