name: builds on: push: paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' env: TORTURE_FLAGS: "--gen_crash_dump" jobs: build-ubuntu-24-04: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: target: - raddbg - raddbg_non_graphical - radlink - radbin - torture compiler: - clang-22 # TODO: - gcc mode: - debug - 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 sudo ln -s /usr/bin/llvm-symbolizer-22 /usr/bin/llvm-symbolizer - name: build shell: bash run: | CC="${{ matrix.compiler }}" ./build.sh "${{ matrix.target }}" "${{ matrix.mode }}" build-windows-2022: runs-on: windows-2022 strategy: fail-fast: false matrix: target: - raddbg - radlink - radbin - mule_main compiler: - msvc - clang mode: - debug - release steps: - name: Checkout uses: actions/checkout@v6 - name: build (vs 2022) 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 build meta "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 run-ubuntu-24-04: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: compiler: - clang-22 # TODO: - gcc mode: - debug # TODO: - release steps: - name: Checkout uses: actions/checkout@v6 - 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: | 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 strategy: fail-fast: false matrix: compiler: - msvc - clang mode: - debug - release steps: - name: Checkout uses: actions/checkout@v6 - 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