Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,47 @@ jobs:
mv src/eigenscript eigenscript-full-${{ matrix.label }}
chmod +x eigenscript-full-${{ matrix.label }}

# The suite's dependency-gated sections fail, not skip, when a
# dependency is missing, so the runner needs what CI's test
# environments carry. Installed AFTER both builds, so the shipped
# binaries (and the Linux glibc floor) do not change.
# Linux: the runtime packages of .devcontainer/Dockerfile (SDL and
# SDL_mixer for the strict-shape backend controls, Xvfb/xdotool for
# the real-input checks).
- name: Install test dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get install -y --no-install-recommends \
libsdl2-dev libsdl2-mixer-2.0-0 xvfb xauth xdotool python3-pil zlib1g-dev

# macOS: the toolchain step of ci.yml's build-and-test-macos-worker.
# coreutils supplies `timeout`, which the gfx example and sanitizer
# checks require; upstream LLVM supplies the gfx LeakSanitizer
# runtime (LLVM 20 deadlocks before main on macOS 26.4+,
# llvm-project#182943, fixed in 22).
- name: Install test dependencies (macOS)
if: runner.os == 'macOS'
run: |
case '${{ matrix.os }}' in
macos-15-intel) formula=llvm@18 ;;
*)
formula=llvm@22
brew install --force-bottle "$formula"
;;
esac
if ! command -v timeout >/dev/null 2>&1 && ! command -v gtimeout >/dev/null 2>&1; then
brew install --force-bottle coreutils
fi
brewbin="$(brew --prefix "$formula")/bin"
test -x "$brewbin/clang"
echo "PATH=$brewbin:$PATH" >> "$GITHUB_ENV"
echo "EIGS_ASAN_GFX_CC=clang" >> "$GITHUB_ENV"

# TMPDIR: two suite diagnostics redirect into "$TMPDIR/..." and
# hosted runners leave it unset (#1624).
- name: Run tests against the release binary
env:
TMPDIR: ${{ runner.temp }}
run: |
cp eigenscript-${{ matrix.label }} src/eigenscript
cd tests && bash run_all_tests.sh
Expand Down
Loading