diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/build.yml | 171 | ||||
-rw-r--r-- | .github/workflows/cpp_lint.yml | 53 | ||||
-rw-r--r-- | .github/workflows/lua_lint.yml | 32 |
3 files changed, 256 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..0d559b197 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,171 @@ +name: build + +# build on c/cpp changes or workflow changes +on: + push: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - '**/CMakeLists.txt' + - 'cmake/Modules/**' + - 'util/buildbot/**' + - 'util/ci/**' + - '.github/workflows/**.yml' + pull_request: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - '**/CMakeLists.txt' + - 'cmake/Modules/**' + - 'util/buildbot/**' + - 'util/ci/**' + - '.github/workflows/**.yml' + +jobs: + # This is our minor gcc compiler + gcc_6: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + sudo apt-get install g++-6 gcc-6 -qyy + source ./util/ci/common.sh + install_linux_deps + + - name: Build + run: | + ./util/ci/build.sh + env: + CMAKE_FLAGS: "-DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6" + + - name: Test + run: | + ./bin/minetest --run-unittests + + # This is the current gcc compiler (available in bionic) + gcc_8: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + sudo apt-get install g++-8 gcc-8 -qyy + source ./util/ci/common.sh + install_linux_deps + + - name: Build + run: | + ./util/ci/build.sh + env: + CMAKE_FLAGS: "-DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8" + + - name: Test + run: | + ./bin/minetest --run-unittests + + # This is our minor clang compiler + clang_3_9: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + sudo apt-get install clang-3.9 -qyy + source ./util/ci/common.sh + install_linux_deps + + - name: Build + run: | + ./util/ci/build.sh + env: + CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-3.9 -DCMAKE_CXX_COMPILER=clang++-3.9" + + - name: Test + run: | + ./bin/minetest --run-unittests + + # This is the current clang version + clang_9: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + sudo apt-get install clang-9 valgrind -qyy + source ./util/ci/common.sh + install_linux_deps + env: + WITH_LUAJIT: 1 + + - name: Build + run: | + ./util/ci/build.sh + env: + CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9" + + - name: Test + run: | + ./bin/minetest --run-unittests + + - name: Valgrind + run: | + valgrind --leak-check=full --leak-check-heuristics=all --undef-value-errors=no --error-exitcode=9 ./bin/minetest --run-unittests + + + # Some builds doesn't require freetype, ensure it compiled properly + clang_9_no_freetype: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + sudo apt-get install clang-9 -qyy + source ./util/ci/common.sh + install_linux_deps + + - name: Build + run: | + ./util/ci/build.sh + env: + CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9 -DENABLE_FREETYPE=0" + + - name: Test + run: | + ./bin/minetest --run-unittests + + win32: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + sudo tar -xaf mingw.tar.xz -C /usr + + - name: Build + run: | + EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin32.sh winbuild + env: + NO_MINETEST_GAME: 1 + NO_PACKAGE: 1 + + win64: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install compiler + run: | + wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + sudo tar -xaf mingw.tar.xz -C /usr + + - name: Build + run: | + EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin64.sh winbuild + env: + NO_MINETEST_GAME: 1 + NO_PACKAGE: 1 diff --git a/.github/workflows/cpp_lint.yml b/.github/workflows/cpp_lint.yml new file mode 100644 index 000000000..3044d5186 --- /dev/null +++ b/.github/workflows/cpp_lint.yml @@ -0,0 +1,53 @@ +name: cpp_lint + +# lint on c/cpp changes or workflow changes +on: + push: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - '**/CMakeLists.txt' + - 'cmake/Modules/**' + - 'util/ci/**' + - '.github/workflows/**.yml' + pull_request: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - '**/CMakeLists.txt' + - 'cmake/Modules/**' + - 'util/ci/**' + - '.github/workflows/**.yml' + +jobs: + clang_format: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install clang-format + run: | + sudo apt-get install ${CLANG_FORMAT} -qyy + env: + CLANG_FORMAT: clang-format-9 + - name: Run clang-format + run: | + source ./util/ci/lint.sh + perform_lint + + clang_tidy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install clang-tidy + run: | + sudo apt-get install clang-tidy-9 -qyy + source ./util/ci/common.sh + install_linux_deps + + - name: Run clang-tidy + run: | + ./util/ci/clang-tidy.sh diff --git a/.github/workflows/lua_lint.yml b/.github/workflows/lua_lint.yml new file mode 100644 index 000000000..1b2c01192 --- /dev/null +++ b/.github/workflows/lua_lint.yml @@ -0,0 +1,32 @@ +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: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Install luarocks + run: | + sudo apt-get update -qyy + 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 |