aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorx2048 <codeforsmile@gmail.com>2022-04-30 15:54:07 +0200
committerGitHub <noreply@github.com>2022-04-30 15:54:07 +0200
commit828461c193c9dcee1221a367b340084e4ee643ad (patch)
tree65c7894f67b0dab9868154ba73535653ac9ffb6f
parentec4a789b4f56d7918b6c964e59b9903af5e17fcd (diff)
downloadminetest-828461c193c9dcee1221a367b340084e4ee643ad.tar.gz
minetest-828461c193c9dcee1221a367b340084e4ee643ad.tar.bz2
minetest-828461c193c9dcee1221a367b340084e4ee643ad.zip
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>
-rw-r--r--.github/workflows/lua.yml60
-rw-r--r--.github/workflows/lua_lint.yml32
-rw-r--r--games/devtest/.luacheckrc43
3 files changed, 103 insertions, 32 deletions
diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml
new file mode 100644
index 000000000..0fa30bb15
--- /dev/null
+++ b/.github/workflows/lua.yml
@@ -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
diff --git a/.github/workflows/lua_lint.yml b/.github/workflows/lua_lint.yml
deleted file mode 100644
index 738e5afff..000000000
--- a/.github/workflows/lua_lint.yml
+++ /dev/null
@@ -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
diff --git a/games/devtest/.luacheckrc b/games/devtest/.luacheckrc
new file mode 100644
index 000000000..1c7d3994f
--- /dev/null
+++ b/games/devtest/.luacheckrc
@@ -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" } },
+ "_",
+}
+