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

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

【超过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 实现 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

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

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

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

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

写这篇文章的人

关于作者

松木

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

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