Skip to content

CI Pipeline

Phobos A. D'thorga edited this page Mar 7, 2026 · 1 revision

CI Pipeline

PhobosLib CI runs on every push to any branch and on PRs to main/develop.

Checks (6 total)

Check What it validates
Lua syntax All .lua files parse correctly under Lua 5.1 (luac5.1 -p)
Luacheck No undefined globals, no typos in PZ function names
Version consistency Both version locations have the same version string
Sandbox translations Every sandbox option has label + tooltip keys in Sandbox_EN.txt
UTF-8 encoding All .lua and .txt files are valid UTF-8 (no mojibake)

Fixing Common Failures

Luacheck: "accessing undefined global 'X'"

A Lua file references a PZ engine function or class not yet listed in .luacheckrc.

Fix: Add it to the appropriate list in .luacheckrc:

  • read_globals — if the mod only reads it (most PZ APIs)
  • globals — if the mod writes to it (monkey-patching)

Version mismatch

One or both version locations are out of sync.

Fix: Run ./scripts/bump-version.sh X.Y.Z to sync both locations.

Missing sandbox translation key

A sandbox option was added to sandbox-options.txt but the corresponding translation keys weren't added.

Fix: Add entries to 42/media/lua/shared/Translate/EN/Sandbox_EN.txt:

  • Sandbox_<key> — label
  • Sandbox_<key>_tooltip — tooltip

UTF-8 encoding error

A file contains non-UTF-8 bytes (usually from copy-pasting from external sources).

Fix: Re-save the file as UTF-8 in your editor.