Build libchess_engine.so in CI deploy and pin runner to ubuntu-24.04

Compile the native engine and copy it into Resources/ before publish so it
ships to prod automatically. Runner pinned to ubuntu-24.04 to match the
server's glibc.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Josh-Heaps
2026-06-08 14:12:50 -06:00
co-authored by Claude Opus 4.8
parent c3280aa6d3
commit fc2a2e122b
+10 -1
View File
@@ -14,7 +14,9 @@ concurrency:
jobs: jobs:
build: build:
runs-on: ubuntu-latest # Pinned (not ubuntu-latest) to match the prod server's Ubuntu/glibc so the
# compiled libchess_engine.so loads there. Keep this == the server's release.
runs-on: ubuntu-24.04
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -25,6 +27,13 @@ jobs:
dotnet-version: '8.0.x' # adjust if needed dotnet-version: '8.0.x' # adjust if needed
- name: Restore - name: Restore
run: dotnet restore JoshHeaps.Net/JoshHeaps.Net.csproj run: dotnet restore JoshHeaps.Net/JoshHeaps.Net.csproj
- name: Build native chess engine (libchess_engine.so)
run: |
cmake -S native/chess_engine -B native/chess_engine/build -DCMAKE_BUILD_TYPE=Release
cmake --build native/chess_engine/build
cp native/chess_engine/build/libchess_engine.so JoshHeaps.Net/Resources/
- name: Publish - name: Publish
run: dotnet publish JoshHeaps.Net/JoshHeaps.Net.csproj -c Release -o ./publish run: dotnet publish JoshHeaps.Net/JoshHeaps.Net.csproj -c Release -o ./publish