aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/lua.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/lua.yml')
-rw-r--r--.github/workflows/lua.yml72
1 files changed, 72 insertions, 0 deletions
diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml
new file mode 100644
index 000000000..21cbbdcee
--- /dev/null
+++ b/.github/workflows/lua.yml
@@ -0,0 +1,72 @@
+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@v3
+ - name: Install deps
+ run: |
+ source ./util/ci/common.sh
+ install_linux_deps clang-10 gdb libluajit-5.1-dev
+
+ - name: Build
+ run: |
+ ./util/ci/build.sh
+ env:
+ CC: clang-10
+ CXX: clang++-10
+ CMAKE_FLAGS: "-DENABLE_GETTEXT=0 -DBUILD_SERVER=0"
+
+ - name: Integration test + devtest
+ run: |
+ ./util/test_multiplayer.sh
+
+ luacheck:
+ name: "Builtin Luacheck and Unit Tests"
+ runs-on: ubuntu-20.04
+
+ steps:
+
+ - uses: actions/checkout@v3
+ - uses: leafo/gh-actions-lua@v9
+ with:
+ luaVersion: "5.1.5"
+ - uses: leafo/gh-actions-luarocks@v4
+
+ - name: Install LuaJIT
+ run: |
+ cd $HOME
+ git clone https://github.com/LuaJIT/LuaJIT/
+ cd LuaJIT
+ make -j$(nproc)
+
+ - 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
+ $HOME/.luarocks/bin/busted builtin --lua=$HOME/LuaJIT/src/luajit
+
+ - name: Run checks (devtest)
+ run: |
+ $HOME/.luarocks/bin/luacheck --config=games/devtest/.luacheckrc games/devtest