Ver código fonte

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>
x2048 2 anos atrás
pai
commit
828461c193
3 arquivos alterados com 103 adições e 32 exclusões
  1. 60 0
      .github/workflows/lua.yml
  2. 0 32
      .github/workflows/lua_lint.yml
  3. 43 0
      games/devtest/.luacheckrc

+ 60 - 0
.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

+ 0 - 32
.github/workflows/lua_lint.yml

@@ -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 - 0
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" } },
+	"_",
+}
+