this makes more sense than the +1ms #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/**' | |
- 'util/ci/**' | |
- 'Dockerfile' | |
- '.dockerignore' | |
- '.github/workflows/linux.yml' | |
pull_request: | |
paths: | |
- 'lib/**.[ch]' | |
- 'lib/**.cpp' | |
- 'src/**.[ch]' | |
- 'src/**.cpp' | |
- 'irr/**.[ch]' | |
- 'irr/**.cpp' | |
- '**/CMakeLists.txt' | |
- 'cmake/Modules/**' | |
- 'util/ci/**' | |
- 'Dockerfile' | |
- '.dockerignore' | |
- '.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 | |
- name: Test | |
run: | | |
./bin/minetest --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/minetest --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/minetest --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/minetest --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/minetestserver --run-unittests |