使用 Github Actions 进行数据包的语法检查

「2023年的Minecraft指令附带日历的第12天」。

 

首先

你在记事本或Github上修改代码时,是否有时会想在不启动Minecraft的情况下进行数据包语法检查呢?
嗯?并不常见?
这种情况下,使用Github Actions进行语法检查非常方便。

这篇文章是为那些有使用过Github和Github Actions的人准备的。

使用的行动

我将使用ChenCMD的datapack-linter插件。

 

进行步骤

1. 行动的设定

请从目标仓库的Actions选项卡中选择”自己设置工作流程”,以打开 main.yml 的编辑界面。

undefined

请将以下代码粘贴到编辑器中。

name: lint-datapack
on:
  push:
  pull_request:
  workflow_dispatch:
jobs:
  lint:
    name: lint
    runs-on: ubuntu-latest
    steps:
      - name: checkout repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: lint
        uses: ChenCMD/datapack-linter@v2

原文引用:README.md

注:此为电脑生成的答案,仅供参考。

2. 推

设置已完成。
在进行提交后,将自动进行检查。
当语法检查顺利完成时,提交信息的后面会出现绿色的复选标记。

image.png

设置语法检查

我本来想要概述一下,但是README上的文本和清单已经写得很清楚了,所以我就直接引用了。

Datapack Linter は Datapack Helper Plus に使用されている言語サーバーを使用しており、リポジトリルートに配置された .vscode/setting.json を自動的に読み込み校閲ルールに適用します。
このファイルは VSCode でワークスペースの設定を変更すると生成されます。
また、後述の入力から configPath を指定することで、任意のコンフィグファイルを読み込むことが可能です。

引用来源:README.md

名前 Name想定する値 / Expect value必須 / Requireデフォルト / Default概要 / AboutlintDirectorypathx"."チェックを行うディレクトリ
Directory to lintconfigPathpathx".vscode/settings.json"校閲ルールを記載したコンフィグファイルのパス
Path to the config file containing the lint rulesforcePasstruexfalseチェックに失敗した Datapack ドキュメントが存在するときに step そのものを失敗させるか否か
Whether or not to fail the step itself when there is a Datapack document that fails the lintmuteSuccessResulttruexfalseチェックに成功した Datapack ドキュメントのログを無効化するか否か
Whether to disable logging of Datapack documents that have been successfully lintedignoreLintPathPatternNamespaced ID Patternx""チェックを行わない Datapack ドキュメントのリソースパスの名前空間 ID パターン
Namespaced ID Pattern of the resource path of the Datapack document whose lints are to be ignoredalwaysCheckAllFiletruexfalse常にすべての Datapack ドキュメントをチェックするか否か
Whether to always lint all Datapack documents

注意:ignoreLintPathPattern可以放入多个字符串。请参考下面的示例。

请参考下面的方法,忽略LintPathPattern可以包含多个字符字符串。

         - name: lint
           uses: ChenCMD/datapack-linter@v2
           with:
             ignoreLintPathPattern: |
               ignore:**
               example:ignore/**
               example:data/ignore/**

引用来源:README.md

有用的场合

初めに書いた通りマイクラを起動せずに構文チェックを行うといった使い方もありますが、他にも用途はあります。

1. 团队发展 duì

在团队开发过程中,即使部分的mcfunction出现错误,整个数据包看起来仍然在运行,但是在执行Push或PR时会在Action检查中出现问题,从而可以防止将错误引入生产环境。

2. 持续集成/持续交付

这个CI構文檢查很容易集成。(相比其他語言的Linter,它的功能並不算很強大,但目前幾乎沒有其他選擇。)

3. 重构

即使在进行了重大的代码更改,例如重构,也是可以依靠Action找到遗漏的语法错误的。

4. 手機解碼(!?)

这只是个玩笑。

如果你在一个只能用浏览器而无法使用VSCode的环境中想编写mcfunction,这个方法可以使用。
打开GitHub仓库并按下键盘上的“.”,或者将URL更改为github.dev,就可以在浏览器内打开VSCode。
但这是一个不完整的VSCode,所以无法使用诸如DHP(Datapack HelperPlus)等便捷的扩展功能。
虽然你可以使用只做着色处理的language-mcfunction插件。
在这种情况下,当你编写代码并提交并推送后,GitHub Action会为你进行语法检查!

总结

几乎已经成为datapack-linter的介绍文章了。
语法检查是一种预防错误的手段,如果您在Github上管理数据包,请务必尝试使用它。

广告
将在 10 秒后关闭
bannerAds