Run automated tests when lua files change (#12184)

* Run automated tests when lua files change

* skip busted on devtest

* use newer build env

* Add .luacheckrc for games/devetest

Co-authored-by: sfan5 <sfan5@live.de>
master
x2048 2022-04-30 15:54:07 +02:00 committed by GitHub
parent ec4a789b4f
commit 828461c193
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 103 additions and 32 deletions

60
.github/workflows/lua.yml vendored Normal file
View File

@ -0,0 +1,60 @@
name: lua_lint
# Lint on lua changes on builtin or if workflow changed
on:
push:
paths:
- 'builtin/**.lua'
- 'games/devtest/**.lua'
- '.github/workflows/**.yml'
pull_request:
paths:
- 'builtin/**.lua'
- 'games/devtest/**.lua'
- '.github/workflows/**.yml'
jobs:
# Note that the integration tests are also run build.yml, but only when C++ code is changed.
integration_tests:
name: "Compile and run multiplayer tests"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install deps
run: |
source ./util/ci/common.sh
install_linux_deps clang-10 gdb
- name: Build
run: |
./util/ci/build.sh
env:
CC: clang-10
CXX: clang++-10
- name: Integration test + devtest
run: |
./util/test_multiplayer.sh
luacheck:
name: "Builtin Luacheck and Unit Tests"
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Install luarocks
run: |
sudo apt-get install luarocks -qyy
- name: Install luarocks tools
run: |
luarocks install --local luacheck
luarocks install --local busted
- name: Run checks (builtin)
run: |
$HOME/.luarocks/bin/luacheck builtin
$HOME/.luarocks/bin/busted builtin
- name: Run checks (devtest)
run: |
$HOME/.luarocks/bin/luacheck --config=games/devtest/.luacheckrc games/devtest

View File

@ -1,32 +0,0 @@
name: lua_lint
# Lint on lua changes on builtin or if workflow changed
on:
push:
paths:
- 'builtin/**.lua'
- '.github/workflows/**.yml'
pull_request:
paths:
- 'builtin/**.lua'
- '.github/workflows/**.yml'
jobs:
luacheck:
name: "Builtin Luacheck and Unit Tests"
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Install luarocks
run: |
sudo apt-get install luarocks -qyy
- name: Install luarocks tools
run: |
luarocks install --local luacheck
luarocks install --local busted
- name: Run checks
run: |
$HOME/.luarocks/bin/luacheck builtin
$HOME/.luarocks/bin/busted builtin

43
games/devtest/.luacheckrc Normal file
View File

@ -0,0 +1,43 @@
unused_args = false
allow_defined_top = true
max_string_line_length = false
max_line_length = false
ignore = {
"131", -- Unused global variable
"211", -- Unused local variable
"231", -- Local variable never accessed
"311", -- Value assigned to a local variable is unused
"412", -- Redefining an argument
"421", -- Shadowing a local variable
"431", -- Shadowing an upvalue
"432", -- Shadowing an upvalue argument
"611", -- Line contains only whitespace
}
read_globals = {
"ItemStack",
"INIT",
"DIR_DELIM",
"dump", "dump2",
"fgettext", "fgettext_ne",
"vector",
"VoxelArea",
"profiler",
"Settings",
"check",
"PseudoRandom",
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn", "indexof", "insert_all"}},
math = {fields = {"hypot", "round"}},
}
globals = {
"aborted",
"minetest",
"core",
os = { fields = { "tempfolder" } },
"_",
}