mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-31 15:35:21 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			160 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| 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_9:
 | |
|     runs-on: ubuntu-22.04
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - name: Install deps
 | |
|         run: |
 | |
|           source ./util/ci/common.sh
 | |
|           install_linux_deps g++-9
 | |
| 
 | |
|       - name: Build
 | |
|         run: |
 | |
|           ./util/ci/build.sh
 | |
|         env:
 | |
|           CC: gcc-9
 | |
|           CXX: g++-9
 | |
|           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 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_11:
 | |
|     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
 | |
|         run: |
 | |
|           ./util/ci/build.sh
 | |
|         env:
 | |
|           CC: clang-11
 | |
|           CXX: clang++-11
 | |
|           # Test fallback SHA implementations
 | |
|           CMAKE_FLAGS: '-DENABLE_OPENSSL=0'
 | |
| 
 | |
|       - name: Test
 | |
|         run: |
 | |
|           ./bin/luanti --run-unittests
 | |
| 
 | |
|   # 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
 |