Skip to content

Build Workstation (Ubuntu, CUDA 12.8 / RTX50) #6

Build Workstation (Ubuntu, CUDA 12.8 / RTX50)

Build Workstation (Ubuntu, CUDA 12.8 / RTX50) #6

name: Build Workstation (Ubuntu, CUDA 12.8 / RTX50)
on:
workflow_dispatch:
env:
ACTIONS_RUNNER_DEBUG: 'true'
ACTIONS_STEP_DEBUG: 'true'
jobs:
build-ubuntu-cuda128:
runs-on: ubuntu-24.04
timeout-minutes: 180
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Free disk space
shell: bash
run: |
set -euxo pipefail
df -h
sudo rm -rf /opt/hostedtoolcache || true
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /usr/local/lib/android || true
sudo rm -rf /usr/local/share/boost || true
sudo rm -rf /usr/share/swift || true
df -h
- name: System deps (Qt + runtime libs)
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
patchelf \
libgl1 \
libglib2.0-0 \
libxkbcommon-x11-0 \
libxcb-xinerama0 \
libxrender1 \
libxext6 \
libx11-6
- name: Build Workstation (Ubuntu CUDA128)
shell: bash
run: |
set -euxo pipefail
# heartbeat in background
(while true; do echo "heartbeat $(date -Is)"; sleep 10; done) &
HB_PID=$!
trap 'kill $HB_PID 2>/dev/null || true' EXIT
chmod +x build_workstation_ubuntu_cuda128.sh
./build_workstation_ubuntu_cuda128.sh
echo "=== POST-BUILD STATE (inside build step) ==="
ls -lah painter/dist || true
du -sh painter/dist/* 2>/dev/null || true
df -h || true
free -h || true
- name: Inspect dist output
shell: bash
run: |
set -euxo pipefail
ls -lah painter/dist || true
find painter/dist -maxdepth 2 -type d -print || true
du -sh painter/dist/* 2>/dev/null || true
df -h
free -h
- name: Sanity check bundle layout
shell: bash
run: |
set -euxo pipefail
ls -lah painter/dist
test -x painter/dist/RootPainter
test -x painter/dist/RootPainterTrainer
test -d painter/dist/RootPainterWorkstation
test -x painter/dist/RootPainterWorkstation/RootPainter
test -x painter/dist/RootPainterWorkstation/RootPainterTrainerBundle/RootPainterTrainer
test -d painter/dist/RootPainterWorkstation/RootPainterTrainerBundle/_internal
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: RootPainter-Workstation-Ubuntu-CUDA128-RTX50
path: painter/dist/RootPainterWorkstation