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 libxfixes-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 libxfixes-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