name: builds on: push: paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' jobs: 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: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 run-torture: runs-on: windows-2022 strategy: fail-fast: false matrix: compiler: - msvc - clang mode: - debug - release exclude: - { compiler: clang, mode: release } # clang runs OOM in release with ASAN steps: - name: checkout uses: actions/checkout@v6 - name: run-torture shell: cmd run: | rem find path to clang for /f "tokens=*" %%i in ('where clang') do set clang_path=%%~dpi call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 rem set clang path before MSVC's clang path set PATH=%clang_path%;%PATH% rem parse out clang version number out of --version to build path to the folder with ASAN DLL for /f "tokens=3 delims=. " %%v in ('clang -v 2^>^&1 ^| findstr version') do set clang_version=%%v if "${{matrix.compiler}}" == "clang" set PATH=%clang_path%..\lib\clang\%clang_version%\lib\windows;%PATH% call build meta raddbg_non_graphical || exit /b 1 call build asan meta torture radlink radbin mule_main mule_module "${{matrix.mode}}" "${{matrix.compiler}}" || exit /b 1 cd build torture --gen_crash_dump || exit /b 1 - name: upload torture crash dumps 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 if-no-files-found: ignore