Added debug artefact
All checks were successful
Build VulkanEngine / build (push) Successful in 4m52s
Build VulkanEngine / nix (push) Successful in 3m15s
Build VulkanEngine / debug (push) Successful in 3m16s
Build VulkanEngine / release (BUNDLE) (push) Successful in 3m35s
Build VulkanEngine / release (PORTABLE) (push) Successful in 3m38s
Build VulkanEngine / notify (push) Successful in 4s
All checks were successful
Build VulkanEngine / build (push) Successful in 4m52s
Build VulkanEngine / nix (push) Successful in 3m15s
Build VulkanEngine / debug (push) Successful in 3m16s
Build VulkanEngine / release (BUNDLE) (push) Successful in 3m35s
Build VulkanEngine / release (PORTABLE) (push) Successful in 3m38s
Build VulkanEngine / notify (push) Successful in 4s
This commit is contained in:
parent
65a715bd12
commit
f724ecc09d
@ -53,6 +53,104 @@ jobs:
|
|||||||
# 2. Debian 12 builds: portable (static) and bundle (bin/ + lib/)
|
# 2. Debian 12 builds: portable (static) and bundle (bin/ + lib/)
|
||||||
# Built on glibc 2.36 => runs on Debian 12 and anything newer.
|
# Built on glibc 2.36 => runs on Debian 12 and anything newer.
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
debug:
|
||||||
|
needs: nix
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: debian:12
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
# git + nodejs must exist before checkout (JS actions run in the container)
|
||||||
|
- name: Dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
git ca-certificates nodejs curl \
|
||||||
|
build-essential cmake ninja-build pkg-config \
|
||||||
|
libwayland-dev libwayland-bin wayland-protocols libxkbcommon-dev \
|
||||||
|
libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Git safe directory
|
||||||
|
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
|
|
||||||
|
- name: Download shaders
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: shaders
|
||||||
|
path: prebuilt-shaders
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: |
|
||||||
|
cmake -S . -B build -G Ninja \
|
||||||
|
--preset debug \
|
||||||
|
-DVULKANENGINE_FETCH_DEPS=ON \
|
||||||
|
-DVULKANENGINE_PORTABLE=ON \
|
||||||
|
-DVULKANENGINE_PREBUILT_SHADERS="$PWD/prebuilt-shaders"
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build --parallel 2
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
run: cmake --install build --prefix dist --strip
|
||||||
|
|
||||||
|
- name: Check binaries
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
for b in dist/bin/engine dist/bin/server; do
|
||||||
|
echo "========== $b =========="
|
||||||
|
readelf -l "$b" | grep 'program interpreter'
|
||||||
|
readelf -d "$b" | grep -E 'RPATH|RUNPATH|NEEDED' || true
|
||||||
|
|
||||||
|
if strings "$b" | grep -q '/nix/store'; then
|
||||||
|
echo "ERROR: $b references /nix/store"; exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The loader must come from volk (dlopen), never from NEEDED
|
||||||
|
if readelf -d "$b" | grep -q 'libvulkan'; then
|
||||||
|
echo "ERROR: $b links libvulkan directly"; exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "PORTABLE" = "PORTABLE" ]; then
|
||||||
|
if readelf -d "$b" | grep -Eq 'libstdc\+\+|libgcc_s'; then
|
||||||
|
echo "ERROR: $b is not static for libstdc++/libgcc"; exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
max=$(objdump -T "$b" | grep -o 'GLIBC_[0-9.]*' | sed 's/GLIBC_//' | sort -uV | tail -1 || true)
|
||||||
|
echo "Highest GLIBC symbol: ${max:-none}"
|
||||||
|
if [ -n "$max" ] && [ "$(printf '%s\n%s\n' "$max" 2.36 | sort -V | tail -1)" != "2.36" ]; then
|
||||||
|
echo "ERROR: needs glibc $max (> 2.36)"; exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ldd "$b" | grep 'not found'; then
|
||||||
|
echo "ERROR: unresolved libraries in $b"; exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# tar keeps permissions and symlinks; artifact zips do not
|
||||||
|
- name: Package
|
||||||
|
run: |
|
||||||
|
tar -C dist -czf VulkanEngine-DEBUG-linux-x86_64.tar.gz .
|
||||||
|
|
||||||
|
- name: Upload build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: VulkanEngine-DEBUG-linux-x86_64
|
||||||
|
path: VulkanEngine-DEBUG-linux-x86_64.tar.gz
|
||||||
|
- name: Notify progress
|
||||||
|
if: failure()
|
||||||
|
run: |
|
||||||
|
curl \
|
||||||
|
-H "Title: [Routine] Engine-DEBUG build" \
|
||||||
|
-d "Build failed (nix: ${{ needs.nix.result }}, release: ${{ needs.debug.result }})" \
|
||||||
|
https://ntfy.alexdelcamp.fr/FlakeBuild
|
||||||
release:
|
release:
|
||||||
needs: nix
|
needs: nix
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user