使用 GitHub Actions 实现 Larastan 自动化!
目录
你好!
我是系统开发部的松木。
在本文中,我想解释如何使用 GitHub Actions 自动设置 Larastan。
什么是 GitHub 操作?
是 GitHub 的官方功能,可自动执行预定义流程
GitHub Actions 自动执行专用文件中定义的流程,作为执行操作的条件,例如创建对存储库的推送或拉取请求。
如何使用 GitHub 操作
要使用 GitHub Actions,您可以通过在“/.github/workflows”目录下创建 .yml 文件来使用它。
创建该目录有两种方法:可以从 GitHub 创建,也可以直接自己创建目录和文件。
这次是我自己创建的,所以在GitHub上就不解释如何创建了。
拉拉斯坦是什么?
Larastan 是指专门针对 Laravel 的静态分析工具。
最初,PHP有一个名为PHPStan的静态分析工具,可以用来在不运行PHP代码的情况下发现PHP代码中的问题。
它检查变量和函数的类型(int类型、string类型等)并确认程序的安全性。
输出代码中发现的错误的详细错误消息。这使您可以确定问题发生的位置。
Larastan 是 PHPStan 为 Laravel 设计的扩展。
内容与 PHPStan 基本相同,但您可以了解 Laravel 项目特有的功能、依赖项和类型,并提高源代码的质量。
环境
PHP:8.2
Laravel:10.x
注意事项
GitHub Actions 编写在 yaml (yml) 文件中。
描述是在树结构中完成的,所以
写作时一定要注意你所描述的部分属于哪个层次结构。
例如,如果下面代码第一行中的关键“jobs”与第二行中的“phpstan”位于同一层次结构中,则它将无法正常工作。
通过将“phpstan”写得比“jobs”深一层,它将正常工作。
jobs: phpstan: // 这是同一级别的,所以不能移动。 jobs: phpstan: // 由于是一层深,所以是树形结构,可以正常运行。
使用代码
这次我们将使用的代码如下。
下面的代码写在“/.github/workflows/larastan.yml”中。
名称:Larastan on:push:jobs:phpstan:runs-on:ubuntu-latest 步骤: - 使用:actions/ [email protected] with:fetch-深度:0 - 名称:安装 PHP 使用:shivammathur/setup-php@v2包含: php-version:8.2 工具:composer、cs2pr 覆盖范围:无 - 名称:Composer 安装运行:composer install 工作目录:./src - 名称:Larastan 安装运行:composer require nunomaduro/larastan --dev - 名称:运行PHPStan 运行:vendor/bin/phpstan 分析 -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 中显示的步骤名称。
“shivamathur/setup-php”是与 GitHub Actions 一起使用的 PHP 设置模块。
和:
通过书写,你可以写出补充信息。
这次使用的php是8.2版本。
工具:
它指的是“shivamathur/setup-php”中提供的工具。
指定要用作工具的库管理工具 Composer。
覆盖范围:
您可以在此处指定覆盖范围。
覆盖率是指代码的覆盖率。
可以使用两个工具:“Xdebug”和“PCOV”。
这里我将省略详细的解释,但我会简单地解释一下,
Xdebug 是一个 PHP 调试工具,还可以让您获得覆盖范围。
PCOV是PHP覆盖率分析的专用工具。
另外,如果您没有指定任何内容,则可以通过指定“none”来禁用它。
例如,如果您想从 Xdebug 获取覆盖率,您可以通过指定以下内容来实现。
覆盖范围:xdebug
这次,由于我运行的是 larastan,因此不需要覆盖,因此我禁用了它。
跑步:
写入要在终端等中执行的命令。
您可以使用working-directory指定安装目的地,它安装在项目根目录下的src目录中。
我运行这个是因为 larastan 尚未安装在 setup-php 中,所以我直接安装 larastan 库。
最后一步是运行 larastan。
vendor/bin/phpstananalyze
是通常的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