build: Add action for running luacheck

Run luacheck on CI to catch subtle errors.

Add a luacheckrc that ensures current code issues no warnings. We should
eventually try to remove many of these ignores.
This commit is contained in:
David Briscoe 2022-03-02 09:51:55 -08:00
parent 66a6c5a50e
commit 66cb419db8
2 changed files with 72 additions and 0 deletions

26
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Linting
on: [push, pull_request]
jobs:
luacheck:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
# Subdirectory to avoid linting luarocks code. Use same dir as testy.
path: batteries
- name: Setup Lua
uses: leafo/gh-actions-lua@v8
with:
luaVersion: 5.4
- name: Setup Lua Rocks
uses: leafo/gh-actions-luarocks@v4
- name: Setup luacheck
run: luarocks install luacheck
- name: Run Code Linter
run: |
cd batteries
luacheck .

46
.luacheckrc Normal file
View File

@ -0,0 +1,46 @@
return {
std = "lua51+love",
ignore = {
"143", -- Accessing an undefined field of a global variable.
"211", -- Unused local variable.
"212", -- Unused argument.
"212/self", -- Unused argument self.
"213", -- Unused loop variable.
"231", -- Local variable is set but never accessed.
"311", -- Value assigned to a local variable is unused.
"412", -- Redefining an argument.
"413", -- Redefining a loop variable.
"421", -- Shadowing a local variable.
"422", -- Shadowing an argument.
"423", -- Shadowing a loop variable.
"423", -- Shadowing a loop variable.
"432", -- Shadowing an upvalue argument.
"611", -- A line consists of nothing but whitespace.
"612", -- A line contains trailing whitespace.
"614", -- Trailing whitespace in a comment.
"631", -- Line is too long.
},
files = {
["tests.lua"] = {
ignore = {
"211", -- Unused local variable. (testy will find these local functions)
},
},
["assert.lua"] = {
ignore = {
"121", -- Setting a read-only global variable. (we clobber assert)
},
},
["init.lua"] = {
ignore = {
"111", -- Setting an undefined global variable. (batteries and ripairs)
"121", -- Setting a read-only global variable. (we clobber assert)
},
},
["sort.lua"] = {
ignore = {
"142", -- Setting an undefined field of a global variable. (inside export)
},
},
}
}