Skip to content

Commit 1f18330

Browse files
committed
ci: throwaway EEVEE runner probe for #201 (not for merge)
1 parent 6da22c9 commit 1f18330

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Probe EEVEE on runners (#201, throwaway)
2+
3+
# Measures whether an EEVEE render works on today's ubuntu-latest, for issue #201
4+
# option 3. Lives only on the probe branch; never merged.
5+
on:
6+
push:
7+
branches: [probe/eevee-runner-201]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
probe:
14+
name: EEVEE probe ${{ matrix.series }}
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 30
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
series: ["5.2", "4.5"]
21+
steps:
22+
- uses: actions/checkout@v7
23+
24+
- name: Install the smoke workflow's runtime libraries (unchanged)
25+
run: |
26+
sudo apt-get update
27+
sudo apt-get install -y --no-install-recommends \
28+
xvfb libgl1 libegl1 libxrender1 libxxf86vm1 libxfixes3 libxi6 \
29+
libxkbcommon0 libsm6 libice6
30+
31+
- name: Download Blender ${{ matrix.series }}
32+
run: |
33+
set -euo pipefail
34+
series="${{ matrix.series }}"
35+
base="https://download.blender.org/release/Blender${series}/"
36+
file=$(curl -fsSL "$base" | grep -oE "blender-${series}\.[0-9]+-linux-x64\.tar\.xz" | sort -V | uniq | tail -1)
37+
mkdir -p "$RUNNER_TEMP/bl"
38+
curl -fSL --retry 3 -o "$RUNNER_TEMP/bl.tar.xz" "${base}${file}"
39+
tar -xf "$RUNNER_TEMP/bl.tar.xz" -C "$RUNNER_TEMP/bl"
40+
bl=$(find "$RUNNER_TEMP/bl" -maxdepth 2 -type f -name blender | head -1)
41+
echo "BLENDER=$bl" >> "$GITHUB_ENV"
42+
"$bl" --version | head -1
43+
44+
- name: Probe renders
45+
run: |
46+
set +e
47+
mkdir -p "$RUNNER_TEMP/out"
48+
script=showcase/shipping-crate/shipping_crate.py
49+
probe() { # label, needs_mesa, use_xvfb, engine
50+
local out="$RUNNER_TEMP/out/$1.png" pre=""
51+
[ "$3" = yes ] && pre="xvfb-run -a"
52+
local t0=$(date +%s.%N)
53+
$pre "$BLENDER" --background --factory-startup --python "$script" -- \
54+
--output "$out" --engine "$4" > "$RUNNER_TEMP/out/$1.log" 2>&1
55+
local rc=$? t1=$(date +%s.%N)
56+
local size=$(stat -c %s "$out" 2>/dev/null || echo 0)
57+
local secs=$(python3 -c "print(round($t1 - $t0, 1))")
58+
echo "| $1 | ${{ matrix.series }} | $4 | xvfb=$3 | exit $rc | ${secs}s | ${size} B |" | tee -a "$RUNNER_TEMP/out/table.md"
59+
grep -iE "EGL|GPU|OpenGL|backend|Error|abort" "$RUNNER_TEMP/out/$1.log" | head -8
60+
}
61+
echo "| probe | series | engine | display | result | wall | png |" > "$RUNNER_TEMP/out/table.md"
62+
echo "| --- | --- | --- | --- | --- | --- | --- |" >> "$RUNNER_TEMP/out/table.md"
63+
"$BLENDER" --background --factory-startup --python "$script" > /dev/null 2>&1; echo "check-only exit $?"
64+
probe A-eevee-headless no no eevee
65+
probe A-eevee-xvfb no yes eevee
66+
probe A-cycles-headless no no cycles
67+
sudo apt-get install -y --no-install-recommends libgl1-mesa-dri libegl-mesa0 libglx-mesa0 > /dev/null 2>&1
68+
probe B-eevee-mesa-headless yes no eevee
69+
probe B-eevee-mesa-xvfb yes yes eevee
70+
cat "$RUNNER_TEMP/out/table.md" >> "$GITHUB_STEP_SUMMARY"
71+
exit 0
72+
73+
- uses: actions/upload-artifact@v4
74+
if: always()
75+
with:
76+
name: eevee-probe-${{ matrix.series }}
77+
path: ${{ runner.temp }}/out/

0 commit comments

Comments
 (0)