feat: update CI workflows to support new OS versions and improve artifact handling

This commit is contained in:
Aaron Kimbrell
2026-06-01 17:50:14 -05:00
parent ae20819e22
commit 028a171e3b
4 changed files with 57 additions and 13 deletions

View File

@@ -15,20 +15,32 @@ jobs:
continue-on-error: ${{ github.event_name != 'push' || !startsWith(github.ref, 'refs/tags/v') }}
strategy:
matrix:
os: [ windows-2022, ubuntu-22.04, macos-15-intel ]
include:
- os: windows-2025
artifact: windows
preset: ci-windows-2022
debug_preset: windows-msvc-relwithdebinfo
- os: ubuntu-24.04
artifact: linux
preset: ci-ubuntu-22.04
debug_preset: linux-gnu-relwithdebinfo
- os: macos-15-intel
artifact: macos
preset: ci-macos-15-intel
debug_preset: macos-relwithdebinfo
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Add msbuild to PATH (Windows only)
if: ${{ matrix.os == 'windows-2022' }}
if: ${{ matrix.os == 'windows-2025' }}
uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3
with:
vs-version: '[17,18)'
msbuild-architecture: x64
- name: Install libssl and switch to XCode 15.2 (Mac Only)
if: ${{ matrix.os == 'macos-13' }}
if: ${{ matrix.os == 'macos-15-intel' }}
run: |
brew install openssl@3
sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
@@ -39,11 +51,11 @@ jobs:
- name: cmake
uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9
with:
workflowPreset: "ci-${{matrix.os}}"
workflowPreset: "${{ matrix.debug_preset }}"
- name: artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{matrix.os}}
name: build-${{matrix.artifact}}
path: |
build/*/*Server*
build/*/*.ini
@@ -56,3 +68,35 @@ jobs:
build/*/*.dcf
!build/*/*.pdb
!build/*/d*/
!build/*/*.dSYM/
- name: Extract Linux debug symbols
if: matrix.os == 'ubuntu-24.04'
run: |
find build -type f -name '*Server' | while read bin; do
objcopy --only-keep-debug "$bin" "${bin}.debug"
objcopy --strip-debug --add-gnu-debuglink="${bin}.debug" "$bin"
done
- name: debug symbols (Windows)
if: matrix.os == 'windows-2025'
uses: actions/upload-artifact@v4
with:
name: debug-${{matrix.artifact}}
path: |
build/*/*.pdb
build/*/d*/
retention-days: 30
- name: debug symbols (Linux)
if: matrix.os == 'ubuntu-24.04'
uses: actions/upload-artifact@v4
with:
name: debug-${{matrix.artifact}}
path: build/**/*.debug
retention-days: 30
- name: debug symbols (macOS)
if: matrix.os == 'macos-15-intel'
uses: actions/upload-artifact@v4
with:
name: debug-${{matrix.artifact}}
path: build/**/*.dSYM/
retention-days: 30