使用 GitHub Actions 实现 Larastan 自动化!

目录
你好!
这是系统开发部的松木。
在本文中,我想解释如何使用 GitHub Actions 设置 Larastan 以自动运行。
什么是 GitHub Actions?
是 GitHub 的一项官方功能,可以自动执行预定义的流程
GitHub Actions 会在您将代码推送到存储库或创建拉取请求时自动执行专用文件中定义的流程,以此作为执行 Action 的条件。
如何使用 GitHub Actions
要使用 GitHub Actions,您可以在“/.github/workflows”目录下创建一个 .yml 文件。
创建此目录有两种方法:您可以从 GitHub 创建,也可以自己创建目录和文件并使用它们。
由于这次是我自己创建的,所以我就不赘述如何在 GitHub 上创建它了。
拉拉斯坦是什么?
Larastan 是一款专为 Laravel 设计的静态分析工具。
最初,PHP 有一个名为 PHPStan 的静态分析工具,它可以在不执行代码的情况下发现 PHP 代码中的问题。
它会检查变量和函数的类型(整数类型、字符串类型等),以确保程序的安全性。
如果它发现你的代码中有错误,它会输出详细的错误信息,让你能够准确地找出问题所在。
Larastan 是 PHPStan 的一个扩展,专为 Laravel 设计。
其内容与 PHPStan 基本相同,但它能帮助你了解 Laravel 项目特有的功能、依赖关系和类型,从而提高源代码的质量。
环境
PHP 版本:8.2;
Laravel 版本:10.x
需要注意的事项
GitHub Actions 在 yaml (yml) 文件中进行描述。
描述采用树状结构,因此
写作时,要注意你所写的部分对应的是哪个级别。
例如,如果下面代码第一行的“jobs”键与第二行的“phpstan”键处于同一级别,则该代码将无法正常工作。
在“jobs”目录下一级输入“phpstan”,它就能正常工作了。
jobs: phpstan: // 这是相同的层级结构,因此无法运行。 jobs: phpstan: // 因为它更深一层,所以变成了树状结构,可以正常运行。
使用的代码
这次我们将使用的代码如下:
以下代码写在“/.github/workflows/larastan.yml”中。
名称:Larastan 推送:作业:phpstan 运行平台:ubuntu-latest 步骤: - 使用:actions/ [email protected]提取深度:0 - 名称:设置 PHP 使用:shivammathur/setup-php@v2 php 版本:8.2 工具:composer、cs2pr 覆盖率:无 - 名称:Composer 安装 运行:composer install 工作目录:./src - 名称:Larastan 安装 运行:composer require nunomaduro/larastan --dev - 名称:运行 PHPStan 运行:vendor/bin/phpstan analyze -c ./phpstan.neon 工作目录:./src
基于以上代码,我们将详细解释 GitHub Actions 和 Larastan 如何自动工作。
姓名:
此字段指定要在 GitHub Actions 中注册的工作流名称。
输入此内容后,它将显示在 GitHub Actions 屏幕上。
我们在此注册名称“Larastan”。
如果未注册,则注册文件的相对路径。
在这种情况下,它将被注册为“./.github/workflows/larastan.yml”。
在:
您可以决定哪个操作会触发工作流运行。
这被称为“触发”。
这次我们将使用的代码由“推送到 GitHub”触发,并执行 Larastan。
您不仅可以设置推送的时间,还可以设置详细的触发器,例如在创建拉取请求时触发,或者仅在推送指定分支时触发。
工作机会:
在本部分中,您可以编写将在工作流中执行的流程。
例如,要运行 Larastan,您需要安装 php、composer 和 Larastan。
本节介绍此类操作。
phpstan:
创建职位并命名职位。
您可以使用作业中的 name 键来设置 GitHub UI 中显示的名称,但如果您不设置,它将被作业名称替换。
继续运行:
定义虚拟机类型。
配置虚拟机
有三种选择:GitHub 托管的运行器
、比 GitHub 托管的运行器更大的运行器,
或者自托管的运行器
在本例中,我们将使用第一个 GitHub 托管的运行器(以下简称运行器)。
运行程序有多种类型,您可以从以下三种中选择:Linux、Windows 和 macOS。
基本上来说,使用 Linux 应该不会有问题,但请根据您的环境进行选择。
这次我们使用最新的Ubuntu虚拟机。
步骤:
请输入要执行的命令。
这里列出的命令是从上到下依次执行的,所以如果顺序错了就会出错,因此请仔细书写。
用途:
指定要执行的操作。
这里使用的操作是一个名为“actions/checkout”的模块。
作为角色,它用于使用代码库中的代码。
此外,检出时只会检索指定分支的第一个提交的代码,因此在with: fetch-depth: 0,可以检索所有分支的完整历史记录。
姓名:
其中 name: 是将在 GitHub Actions 中显示的步骤名称。
"shivammathur/setup-php" 是一个与 GitHub Actions 一起使用的 php 设置模块。
和:
您可以在此处添加更多信息。
本示例中使用的 PHP 版本为 8.2。
工具:
这指的是“shivammathur/setup-php”中提供的工具。
请指定您要使用库管理工具 Composer。
覆盖范围:
您可以在此处指定覆盖范围。
覆盖率指的是代码覆盖率。
您可以使用两种工具:“Xdebug”和“PCOV”。
我在这里就不赘述细节了,简单来说,
Xdebug 是一款 PHP 调试工具,同时还提供代码覆盖率。
PCOV 是一款专门为 PHP 代码覆盖率分析而设计的工具。
如果您不想指定任何内容,可以通过指定“none”来禁用它。
例如,如果您想从 Xdebug 获取代码覆盖率,可以按如下方式指定:
覆盖范围:xdebug
这次我们运行的是 larastan,所以不需要覆盖范围,并且已经禁用了覆盖范围。
跑步:
在终端中输入要执行的命令。
可以使用 working-directory 指定安装目标,它将被安装在项目根目录下的 src 目录中。
运行此命令的原因是 larastan 尚未安装在 setup-php 中,因此直接安装 larastan 库。
最后,是时候运行拉拉斯坦了。
vendor/bin/phpstan analyze ,larastan 执行命令都是通常的,但是-c ./phpstan.neon指定运行 larastan 的配置应该引用当前目录中的 phpstan.neon。
您可以使用 phpstan.neon 设置级别和其他设置,本次使用的 phpstan.neon 的内容如下。
包含:- ./vendor/nunomaduro/larastan/extension.neon 参数:路径:- src 级别:1
考虑到以上因素,您将能够自动运行 Larastan。
概括
你觉得怎么样?
这次,我省略了与代码无关的部分。
想了解更多?请查看 GitHub Actions 文档。
非常感谢。
最后
我所在的系统开发部门推出了一个名为“SEKARAKU Lab”的服务网站。Beyond
提供从服务器设计、搭建到运维的一站式服务,所以如果您在服务器端开发方面遇到任何问题,请随时与我们联系。
● SEKARAKU 实验室: https://sekarakulab.beyondjapan.com
6