mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-16 09:04:38 +00:00
updated runners
multiple different build types added for different configurations, now making full use of the matrix properly so we can have an early warning of different compile setups and errors that may occur
This commit is contained in:
parent
ae283af384
commit
222f476f0e
3 changed files with 222 additions and 130 deletions
56
.github/workflows/build-linux-gcc.yml
vendored
56
.github/workflows/build-linux-gcc.yml
vendored
|
|
@ -4,10 +4,6 @@ on:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
env:
|
|
||||||
build_type: "Release"
|
|
||||||
cc: "gcc"
|
|
||||||
cxx: "g++"
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
|
||||||
|
|
@ -25,16 +21,43 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
|
# Explicit older GCC versions catch deprecation warnings before
|
||||||
|
# they become the runner default and break the build silently.
|
||||||
- {
|
- {
|
||||||
name: "Ubuntu Latest GCC",
|
name: "Ubuntu GCC 12",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "gcc-12",
|
||||||
|
cxx: "g++-12",
|
||||||
|
generator: "Ninja",
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu GCC 13",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "gcc-13",
|
||||||
|
cxx: "g++-13",
|
||||||
|
generator: "Ninja",
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu GCC Latest",
|
||||||
build_type: "Release",
|
build_type: "Release",
|
||||||
cc: "gcc",
|
cc: "gcc",
|
||||||
cxx: "g++",
|
cxx: "g++",
|
||||||
generator: "Ninja"
|
generator: "Ninja",
|
||||||
|
}
|
||||||
|
# Clang produces a meaningfully different set of warnings and
|
||||||
|
# errors than GCC — builds that pass one often have real issues
|
||||||
|
# on the other.
|
||||||
|
- {
|
||||||
|
name: "Ubuntu Clang",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "clang",
|
||||||
|
cxx: "clang++",
|
||||||
|
generator: "Ninja",
|
||||||
}
|
}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Print env
|
- name: Print env
|
||||||
run: |
|
run: |
|
||||||
echo github.event.action: ${{ github.event.action }}
|
echo github.event.action: ${{ github.event.action }}
|
||||||
|
|
@ -48,14 +71,16 @@ jobs:
|
||||||
|
|
||||||
- name: Install Linux Dependencies
|
- name: Install Linux Dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install ninja-build
|
|
||||||
ninja --version
|
|
||||||
cmake --version
|
|
||||||
gcc --version
|
|
||||||
sudo apt-get update && \
|
sudo apt-get update && \
|
||||||
sudo apt-get install -y \
|
sudo apt-get install -y \
|
||||||
|
ninja-build \
|
||||||
build-essential \
|
build-essential \
|
||||||
nasm \
|
nasm \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
gcc-12 g++-12 \
|
||||||
|
gcc-13 g++-13 \
|
||||||
|
clang \
|
||||||
libogg-dev \
|
libogg-dev \
|
||||||
libxft-dev \
|
libxft-dev \
|
||||||
libx11-dev \
|
libx11-dev \
|
||||||
|
|
@ -76,11 +101,10 @@ jobs:
|
||||||
libxss-dev \
|
libxss-dev \
|
||||||
libglu1-mesa-dev \
|
libglu1-mesa-dev \
|
||||||
libgtk-3-dev
|
libgtk-3-dev
|
||||||
|
ninja --version
|
||||||
sudo apt-get install -y \
|
cmake --version
|
||||||
python3
|
${{matrix.config.cc}} --version
|
||||||
|
python3 -m pip install --break-system-packages jinja2
|
||||||
pip install jinja2
|
|
||||||
|
|
||||||
- name: Configure, Build & Install
|
- name: Configure, Build & Install
|
||||||
uses: threeal/cmake-action@v1.3.0
|
uses: threeal/cmake-action@v1.3.0
|
||||||
|
|
@ -102,7 +126,7 @@ jobs:
|
||||||
- name: Test Reporter
|
- name: Test Reporter
|
||||||
uses: phoenix-actions/test-reporting@v14
|
uses: phoenix-actions/test-reporting@v14
|
||||||
with:
|
with:
|
||||||
name: Linux test results
|
name: ${{matrix.config.name}} test results
|
||||||
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
||||||
reporter: java-junit
|
reporter: java-junit
|
||||||
fail-on-error: true
|
fail-on-error: true
|
||||||
|
|
|
||||||
35
.github/workflows/build-macos-clang.yml
vendored
35
.github/workflows/build-macos-clang.yml
vendored
|
|
@ -4,10 +4,6 @@ on:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
env:
|
|
||||||
build_type: "Release"
|
|
||||||
cc: "clang"
|
|
||||||
cxx: "clang++"
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macosx
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macosx
|
||||||
|
|
@ -17,24 +13,44 @@ permissions:
|
||||||
checks: write
|
checks: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-macos:
|
||||||
if: github.repository == 'TorqueGameEngines/Torque3D'
|
if: github.repository == 'TorqueGameEngines/Torque3D'
|
||||||
name: ${{matrix.config.name}}
|
name: ${{matrix.config.name}}
|
||||||
runs-on: macos-latest
|
runs-on: ${{matrix.config.os}}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
|
# macos-latest is Apple Silicon (arm64). The Intel entry below
|
||||||
|
# covers x86_64 users who haven't migrated yet.
|
||||||
- {
|
- {
|
||||||
name: "MacOSX Latest Clang",
|
name: "macOS ARM Clang Ninja",
|
||||||
|
os: "macos-latest",
|
||||||
build_type: "Release",
|
build_type: "Release",
|
||||||
cc: "clang",
|
cc: "clang",
|
||||||
cxx: "clang++",
|
cxx: "clang++",
|
||||||
generator: "Ninja"
|
generator: "Ninja",
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "macOS Intel Clang Ninja",
|
||||||
|
os: "macos-13",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "clang",
|
||||||
|
cxx: "clang++",
|
||||||
|
generator: "Ninja",
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "macOS ARM Xcode",
|
||||||
|
os: "macos-latest",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "clang",
|
||||||
|
cxx: "clang++",
|
||||||
|
generator: "Xcode",
|
||||||
}
|
}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Print env
|
- name: Print env
|
||||||
run: |
|
run: |
|
||||||
echo github.event.action: ${{ github.event.action }}
|
echo github.event.action: ${{ github.event.action }}
|
||||||
|
|
@ -51,6 +67,7 @@ jobs:
|
||||||
brew install ninja zip unzip curl pkgconfig
|
brew install ninja zip unzip curl pkgconfig
|
||||||
ninja --version
|
ninja --version
|
||||||
cmake --version
|
cmake --version
|
||||||
|
clang --version
|
||||||
|
|
||||||
- name: Configure, Build & Install
|
- name: Configure, Build & Install
|
||||||
uses: threeal/cmake-action@v1.3.0
|
uses: threeal/cmake-action@v1.3.0
|
||||||
|
|
@ -72,7 +89,7 @@ jobs:
|
||||||
- name: Test Reporter
|
- name: Test Reporter
|
||||||
uses: phoenix-actions/test-reporting@v14
|
uses: phoenix-actions/test-reporting@v14
|
||||||
with:
|
with:
|
||||||
name: MacOS Test results
|
name: ${{matrix.config.name}} test results
|
||||||
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
||||||
reporter: java-junit
|
reporter: java-junit
|
||||||
fail-on-error: true
|
fail-on-error: true
|
||||||
|
|
|
||||||
69
.github/workflows/build-windows-msvc.yml
vendored
69
.github/workflows/build-windows-msvc.yml
vendored
|
|
@ -4,6 +4,7 @@ on:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [development]
|
branches: [development]
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
@ -15,23 +16,67 @@ jobs:
|
||||||
build-windows:
|
build-windows:
|
||||||
if: github.repository == 'TorqueGameEngines/Torque3D'
|
if: github.repository == 'TorqueGameEngines/Torque3D'
|
||||||
name: ${{matrix.config.name}}
|
name: ${{matrix.config.name}}
|
||||||
runs-on: windows-latest
|
runs-on: ${{matrix.config.os}}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
- {
|
- {
|
||||||
name: "Windows Latest MSVC",
|
name: "Windows MSVC Ninja",
|
||||||
|
os: "windows-latest",
|
||||||
build_type: "Release",
|
build_type: "Release",
|
||||||
cc: "cl",
|
cc: "cl",
|
||||||
cxx: "cl",
|
cxx: "cl",
|
||||||
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
|
generator: "Ninja",
|
||||||
generator: "Visual Studio 17 2022"
|
cmake_args: "",
|
||||||
|
compiler_family: "msvc",
|
||||||
|
msvc_arch: "amd64",
|
||||||
|
can_test: true,
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Windows MSVC Visual Studio",
|
||||||
|
os: "windows-2022",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "cl",
|
||||||
|
cxx: "cl",
|
||||||
|
generator: "Visual Studio 17 2022",
|
||||||
|
cmake_args: "",
|
||||||
|
compiler_family: "msvc",
|
||||||
|
msvc_arch: "amd64",
|
||||||
|
can_test: true,
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Windows Clang-cl",
|
||||||
|
os: "windows-latest",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "clang-cl",
|
||||||
|
cxx: "clang-cl",
|
||||||
|
generator: "Ninja",
|
||||||
|
cmake_args: "",
|
||||||
|
compiler_family: "clang-cl",
|
||||||
|
msvc_arch: "amd64",
|
||||||
|
can_test: true,
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Windows ARM64 MSVC",
|
||||||
|
os: "windows-latest",
|
||||||
|
build_type: "Release",
|
||||||
|
cc: "cl",
|
||||||
|
cxx: "cl",
|
||||||
|
generator: "Visual Studio 17 2022",
|
||||||
|
cmake_args: "-A ARM64",
|
||||||
|
compiler_family: "msvc",
|
||||||
|
msvc_arch: "amd64_arm64",
|
||||||
|
can_test: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: ilammy/msvc-dev-cmd@v1.13.0
|
- uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||||
|
with:
|
||||||
|
arch: ${{matrix.config.msvc_arch}}
|
||||||
|
|
||||||
- name: Print env
|
- name: Print env
|
||||||
run: |
|
run: |
|
||||||
echo github.event.action: ${{ github.event.action }}
|
echo github.event.action: ${{ github.event.action }}
|
||||||
|
|
@ -43,10 +88,13 @@ jobs:
|
||||||
- name: Setup MSVC problem matcher
|
- name: Setup MSVC problem matcher
|
||||||
uses: ammaraskar/msvc-problem-matcher@master
|
uses: ammaraskar/msvc-problem-matcher@master
|
||||||
|
|
||||||
- name: Install Dependencies For ${{matrix.config.name}}
|
- name: Add Clang to PATH
|
||||||
|
if: matrix.config.compiler_family == 'clang-cl'
|
||||||
run: |
|
run: |
|
||||||
cmake --version
|
echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||||
cmd "${{matrix.config.environment_script}}"
|
|
||||||
|
- name: Verify toolchain
|
||||||
|
run: cmake --version
|
||||||
|
|
||||||
- name: Configure, Build & Install
|
- name: Configure, Build & Install
|
||||||
uses: threeal/cmake-action@v1.3.0
|
uses: threeal/cmake-action@v1.3.0
|
||||||
|
|
@ -56,11 +104,14 @@ jobs:
|
||||||
c-compiler: ${{matrix.config.cc}}
|
c-compiler: ${{matrix.config.cc}}
|
||||||
cxx-compiler: ${{matrix.config.cxx}}
|
cxx-compiler: ${{matrix.config.cxx}}
|
||||||
generator: ${{matrix.config.generator}}
|
generator: ${{matrix.config.generator}}
|
||||||
|
args: ${{matrix.config.cmake_args}}
|
||||||
options: CMAKE_BUILD_TYPE=${{matrix.config.build_type}} TORQUE_APP_NAME=Torque3D TORQUE_TESTING=ON
|
options: CMAKE_BUILD_TYPE=${{matrix.config.build_type}} TORQUE_APP_NAME=Torque3D TORQUE_TESTING=ON
|
||||||
run-build: true
|
run-build: true
|
||||||
build-args: --config ${{matrix.config.build_type}} --target install
|
build-args: --config ${{matrix.config.build_type}} --target install
|
||||||
|
|
||||||
|
# Skipped for ARM64 — binary cannot run on the x64 host runner.
|
||||||
- name: Unit Tests
|
- name: Unit Tests
|
||||||
|
if: matrix.config.can_test
|
||||||
run: |
|
run: |
|
||||||
cd "${{github.workspace}}/My Projects/Torque3D/game"
|
cd "${{github.workspace}}/My Projects/Torque3D/game"
|
||||||
./Torque3D.exe runTests.tscript
|
./Torque3D.exe runTests.tscript
|
||||||
|
|
@ -68,8 +119,8 @@ jobs:
|
||||||
- name: Test Reporter
|
- name: Test Reporter
|
||||||
uses: phoenix-actions/test-reporting@v14
|
uses: phoenix-actions/test-reporting@v14
|
||||||
with:
|
with:
|
||||||
name: Windows test results
|
name: ${{matrix.config.name}} test results
|
||||||
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
path: "**/My Projects/Torque3D/game/test_detail.xml"
|
||||||
reporter: java-junit
|
reporter: java-junit
|
||||||
fail-on-error: true
|
fail-on-error: true
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request' && matrix.config.can_test
|
||||||
Loading…
Add table
Add a link
Reference in a new issue