Skip to content

radlink: honor explicitly supplied ASan runtime libraries #4229

radlink: honor explicitly supplied ASan runtime libraries

radlink: honor explicitly supplied ASan runtime libraries #4229

Workflow file for this run

name: builds
on:
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
env:
TORTURE_FLAGS: "--gen_crash_dump"
jobs:
build-ubuntu-24:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
target:
- raddbg
- raddbg_non_graphical
- radlink
- radbin
- torture
compiler:
- clang-17
- clang-22
- gcc
name: ${{ matrix.target }}-${{ matrix.compiler }}-ubuntu24
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Install Common Dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y pkg-config libfreetype6-dev libx11-dev libxext-dev libgl1-mesa-dev libegl1-mesa-dev
- name: Install clang-17 Dependencies
if: ${{ matrix.compiler == 'clang-17' }}
shell: bash
run: |
sudo apt-get install --no-install-recommends -y clang-17 lld-17 llvm-17
sudo ln -sf /usr/bin/llvm-symbolizer-17 /usr/bin/llvm-symbolizer
echo CC="${{ matrix.compiler }}" >> "${GITHUB_ENV}"
echo AR=llvm-ar-17 >> "${GITHUB_ENV}"
- name: Install ${{ matrix.compiler }} Dependencies
if: ${{ matrix.compiler == 'clang-22' }}
shell: bash
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-22 main"
sudo apt-get update
sudo apt-get install -y clang-22 lld-22 llvm-22
sudo ln -sf /usr/bin/llvm-symbolizer-22 /usr/bin/llvm-symbolizer
echo CC="${{ matrix.compiler }}" >> "${GITHUB_ENV}"
echo AR=llvm-ar-22 >> "${GITHUB_ENV}"
- name: Build (debug)
shell: bash
run: |
export CC_BUILD="${{ matrix.compiler }}"
./build.sh "${{ matrix.target }}" debug ${CC_BUILD%%-*}
- name: Build (release)
shell: bash
run: |
export CC_BUILD="${{ matrix.compiler }}"
./build.sh "${{ matrix.target }}" release ${CC_BUILD%%-*}
build-windows-vs2022:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
target:
- raddbg
- radlink
- radbin
- mule_main
compiler:
- msvc
- clang
name: ${{ matrix.target }}-${{ matrix.compiler }}-vs2022
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Build (debug)
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || exit /b 1
call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" debug || exit /b 1
- name: Build (debug)
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || exit /b 1
call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" release || exit /b 1
build-windows-vs2026:
runs-on: windows-2025
strategy:
fail-fast: false
matrix:
target:
- raddbg
- radlink
- radbin
- mule_main
compiler:
- msvc
- clang
name: ${{ matrix.target }}-${{ matrix.compiler }}-vs2026
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Build (debug)
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || exit /b 1
call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" debug || exit /b 1
- name: Build (release)
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || exit /b 1
call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" release || exit /b 1
run-ubuntu-24-04:
runs-on: ubuntu-24.04
if: false
strategy:
fail-fast: false
matrix:
compiler:
- clang-22
# TODO: - gcc
mode:
- debug
# TODO: - release
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Install Dependencies
shell: bash
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-22 main"
sudo apt-get update
sudo apt-get install -y clang-22 lld-22 llvm-22 gcc-14 pkg-config libfreetype6-dev libx11-dev libxext-dev libgl1-mesa-dev libegl1-mesa-dev
# crash callstack symbolizer depends on LLVM
sudo ln -s /usr/bin/llvm-symbolizer-22 /usr/bin/llvm-symbolizer
- name: Run
shell: bash
run: |
[[ "${{ matrix.compiler }}" == "clang-22" ]] && export AR=llvm-ar-22
CC="${{ matrix.compiler }}" ./run_tests.sh clang "${{ matrix.mode }}" -- \* $TORTURE_FLAGS
- name: Upload Artifacts
if: failure()
uses: actions/upload-artifact@v7
with:
name: torture-crash-dumps-${{ matrix.compiler }}-${{ matrix.mode }}
path: |
build/*.core
build/*.exe
build/*.pdb
build/torture_artifacts/**
if-no-files-found: ignore
run-windows-2022:
runs-on: windows-2022
if: false
strategy:
fail-fast: false
matrix:
compiler:
- msvc
- clang
mode:
- debug
- release
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Run
shell: cmd
run: |
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VS_INSTALL=%%i"
call "%VS_INSTALL%\VC\Auxiliary\Build\vcvarsall.bat" x64
call run_tests.bat ${{ matrix.compiler }} ${{ matrix.mode }} -- * %TORTURE_FLAGS% || exit /b 1
- name: Upload Artifacts
if: failure()
uses: actions/upload-artifact@v7
with:
name: torture-crash-dumps-${{ matrix.compiler }}-${{ matrix.mode }}
path: |
build/*.dmp
build/*.exe
build/*.pdb
build/torture_artifacts/**
if-no-files-found: ignore