diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c4d3abd1..91ed8fd43 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install g++-6 gcc-6 -qyy source ./util/ci/common.sh @@ -41,7 +41,8 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6" + CC: gcc-6 + CXX: g++-6 - name: Test run: | @@ -52,7 +53,7 @@ jobs: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install g++-8 gcc-8 -qyy source ./util/ci/common.sh @@ -62,7 +63,8 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8" + CC: gcc-8 + CXX: g++-8 - name: Test run: | @@ -73,7 +75,7 @@ jobs: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install clang-3.9 -qyy source ./util/ci/common.sh @@ -83,7 +85,8 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-3.9 -DCMAKE_CXX_COMPILER=clang++-3.9" + CC: clang-3.9 + CXX: clang++-3.9 - name: Test run: | @@ -94,7 +97,7 @@ jobs: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install clang-9 valgrind -qyy source ./util/ci/common.sh @@ -106,7 +109,8 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9" + CC: clang-9 + CXX: clang++-9 - name: Test run: | @@ -116,12 +120,13 @@ jobs: run: | valgrind --leak-check=full --leak-check-heuristics=all --undef-value-errors=no --error-exitcode=9 ./bin/minetest --run-unittests - + # Build with prometheus-cpp (server-only) clang_9_prometheus: + name: "clang_9 (PROMETHEUS=1)" runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install clang-9 -qyy source ./util/ci/common.sh @@ -135,18 +140,21 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9 -DENABLE_PROMETHEUS=1" + CC: clang-9 + CXX: clang++-9 + CMAKE_FLAGS: "-DENABLE_PROMETHEUS=1 -DBUILD_CLIENT=0" - name: Test run: | - ./bin/minetest --run-unittests + ./bin/minetestserver --run-unittests - # Some builds doesn't require freetype, ensure it compiled properly + # Build without freetype (client-only) clang_9_no_freetype: + name: "clang_9 (FREETYPE=0)" runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install compiler + - name: Install deps run: | sudo apt-get install clang-9 -qyy source ./util/ci/common.sh @@ -156,13 +164,16 @@ jobs: run: | ./util/ci/build.sh env: - CMAKE_FLAGS: "-DCMAKE_C_COMPILER=clang-9 -DCMAKE_CXX_COMPILER=clang++-9 -DENABLE_FREETYPE=0" + CC: clang-9 + CXX: clang++-9 + CMAKE_FLAGS: "-DENABLE_FREETYPE=0 -DBUILD_SERVER=0" - name: Test run: | ./bin/minetest --run-unittests docker: + name: "Docker image" runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 @@ -171,11 +182,13 @@ jobs: docker build . win32: + name: "MinGW cross-compiler (32-bit)" runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Install compiler run: | + sudo apt-get install gettext -qyy 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 @@ -187,11 +200,13 @@ jobs: NO_PACKAGE: 1 win64: + name: "MinGW cross-compiler (64-bit)" runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Install compiler run: | + sudo apt-get install gettext -qyy 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 diff --git a/.github/workflows/cpp_lint.yml b/.github/workflows/cpp_lint.yml index 3044d5186..1f97d105a 100644 --- a/.github/workflows/cpp_lint.yml +++ b/.github/workflows/cpp_lint.yml @@ -30,19 +30,20 @@ jobs: - uses: actions/checkout@v2 - name: Install clang-format run: | - sudo apt-get install ${CLANG_FORMAT} -qyy - env: - CLANG_FORMAT: clang-format-9 + sudo apt-get install clang-format-9 -qyy + - name: Run clang-format run: | source ./util/ci/lint.sh perform_lint + env: + CLANG_FORMAT: clang-format-9 clang_tidy: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - - name: Install clang-tidy + - name: Install deps run: | sudo apt-get install clang-tidy-9 -qyy source ./util/ci/common.sh diff --git a/.github/workflows/lua_lint.yml b/.github/workflows/lua_lint.yml index 1b2c01192..738e5afff 100644 --- a/.github/workflows/lua_lint.yml +++ b/.github/workflows/lua_lint.yml @@ -13,12 +13,12 @@ on: 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 update -qyy sudo apt-get install luarocks -qyy - name: Install luarocks tools diff --git a/util/ci/build.sh b/util/ci/build.sh index 59069b00a..ba77cd645 100755 --- a/util/ci/build.sh +++ b/util/ci/build.sh @@ -1,4 +1,4 @@ -#! /bin/bash -eu +#! /bin/bash -e mkdir cmakebuild cd cmakebuild diff --git a/util/ci/clang-tidy.sh b/util/ci/clang-tidy.sh index d048f54ee..bb4e99fef 100755 --- a/util/ci/clang-tidy.sh +++ b/util/ci/clang-tidy.sh @@ -5,8 +5,7 @@ cd cmakebuild cmake -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DRUN_IN_PLACE=TRUE \ - -DENABLE_GETTEXT=TRUE \ - -DENABLE_SOUND=FALSE \ + -DENABLE_{GETTEXT,SOUND}=FALSE \ -DBUILD_SERVER=TRUE .. make GenerateVersion diff --git a/util/ci/common.sh b/util/ci/common.sh index 5a4f78457..a2e4beac9 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -1,21 +1,5 @@ #!/bin/bash -e -set_linux_compiler_env() { - if [[ "${COMPILER}" == "gcc-6" ]]; then - export CC=gcc-6 - export CXX=g++-6 - elif [[ "${COMPILER}" == "gcc-8" ]]; then - export CC=gcc-8 - export CXX=g++-8 - elif [[ "${COMPILER}" == "clang-3.9" ]]; then - export CC=clang-3.9 - export CXX=clang++-3.9 - elif [[ "${COMPILER}" == "clang-9" ]]; then - export CC=clang-9 - export CXX=clang++-9 - fi -} - # Linux build only install_linux_deps() { local pkgs=(libirrlicht-dev cmake libbz2-dev libpng-dev \