123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- name: linux
- # build on c/cpp changes or workflow changes
- on:
- push:
- paths:
- - 'lib/**.[ch]'
- - 'lib/**.cpp'
- - 'src/**.[ch]'
- - 'src/**.cpp'
- - 'irr/**.[ch]'
- - 'irr/**.cpp'
- - '**/CMakeLists.txt'
- - 'cmake/Modules/**'
- - 'po/**.po'
- - 'util/ci/**'
- - '.github/workflows/linux.yml'
- pull_request:
- paths:
- - 'lib/**.[ch]'
- - 'lib/**.cpp'
- - 'src/**.[ch]'
- - 'src/**.cpp'
- - 'irr/**.[ch]'
- - 'irr/**.cpp'
- - '**/CMakeLists.txt'
- - 'cmake/Modules/**'
- - 'po/**.po'
- - 'util/ci/**'
- - '.github/workflows/linux.yml'
- env:
- MINETEST_POSTGRESQL_CONNECT_STRING: 'host=localhost user=minetest password=minetest dbname=minetest'
- jobs:
- # Older gcc version (should be close to our minimum supported version)
- gcc_7:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps g++-7
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: gcc-7
- CXX: g++-7
- # Test fallback SHA implementations
- CMAKE_FLAGS: '-DENABLE_OPENSSL=0'
- - name: Test
- run: |
- ./bin/luanti --run-unittests
- # Current gcc version
- gcc_14:
- runs-on: ubuntu-24.04
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps g++-14 libluajit-5.1-dev
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: gcc-14
- CXX: g++-14
- - name: Test
- run: |
- mkdir nowrite
- chmod a-w nowrite
- cd nowrite
- ../bin/luanti --run-unittests
- # Older clang version (should be close to our minimum supported version)
- clang_7:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps clang-7 llvm-7
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: clang-7
- CXX: clang++-7
- CMAKE_FLAGS: '-DCMAKE_C_FLAGS="-fsanitize=address" -DCMAKE_CXX_FLAGS="-fsanitize=address"'
- - name: Unittest
- run: |
- ./bin/luanti --run-unittests
- # Do this here because we have ASan and error paths are sensitive to dangling pointers
- - name: Test error cases
- run: |
- ./util/test_error_cases.sh
- # Current clang version
- clang_18:
- runs-on: ubuntu-24.04
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps clang-18 lldb
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: clang-18
- CXX: clang++-18
- - name: Test
- run: |
- ./bin/luanti --run-unittests
- - name: Integration test + devtest
- run: |
- ./util/test_multiplayer.sh
- # Build with prometheus-cpp (server-only)
- clang_11_prometheus:
- name: "clang_11 (PROMETHEUS=1)"
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v4
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps clang-11
- - name: Build prometheus-cpp
- run: ./util/ci/build_prometheus_cpp.sh
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: clang-11
- CXX: clang++-11
- CMAKE_FLAGS: "-DENABLE_PROMETHEUS=1 -DBUILD_CLIENT=0 -DENABLE_CURSES=0"
- - name: Test
- run: |
- ./bin/luantiserver --run-unittests
|