]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Run automated tests when lua files change (#12184)
authorx2048 <codeforsmile@gmail.com>
Sat, 30 Apr 2022 13:54:07 +0000 (15:54 +0200)
committerGitHub <noreply@github.com>
Sat, 30 Apr 2022 13:54:07 +0000 (15:54 +0200)
* 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>
.github/workflows/lua.yml [new file with mode: 0644]
.github/workflows/lua_lint.yml [deleted file]
games/devtest/.luacheckrc [new file with mode: 0644]

diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml
new file mode 100644 (file)
index 0000000..0fa30bb
--- /dev/null
@@ -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 (file)
index 738e5af..0000000
+++ /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 (file)
index 0000000..1c7d399
--- /dev/null
@@ -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" } },
+       "_",
+}
+