name: CI (Windows) on: push: paths: - '.github/workflows/**' - '3rdparty/**' - 'scripts/**' - 'src/**' - 'COPYING' - 'makefile' pull_request: paths: - '.github/workflows/**' - '3rdparty/**' - 'scripts/**' - 'src/**' - 'COPYING' - 'makefile' permissions: contents: read jobs: build-windows: strategy: matrix: compiler: [gcc-x64, clang-x64, clang-arm64] include: - compiler: gcc-x64 os: windows-latest msys: MINGW64 slug: mingw-w64-x86_64 cc: gcc cxx: g++ subtarget: mame executable: mame - compiler: clang-x64 os: windows-latest msys: MINGW64 slug: mingw-w64-x86_64 cc: clang cxx: clang++ subtarget: tiny executable: mametiny - compiler: clang-arm64 os: windows-11-arm msys: CLANGARM64 slug: mingw-w64-clang-aarch64 extrapkg: mingw-w64-clang-aarch64-gcc-compat cc: clang cxx: clang++ subtarget: mame executable: mame runs-on: ${{ matrix.os }} defaults: run: shell: msys2 {0} steps: - uses: msys2/setup-msys2@v2 with: msystem: ${{ matrix.msys }} install: git make ${{ matrix.slug }}-${{ matrix.cc }} ${{ matrix.slug }}-python ${{ matrix.slug }}-lld ${{ matrix.slug }}-llvm ${{ matrix.slug }}-libc++ ${{ matrix.extrapkg }} - uses: actions/checkout@main with: fetch-depth: 0 - name: Build env: OVERRIDE_AR: "llvm-ar" OVERRIDE_CC: ${{ matrix.cc }} OVERRIDE_CXX: ${{ matrix.cxx }} ARCHOPTS: "-fuse-ld=lld" SUBTARGET: ${{ matrix.subtarget }} TOOLS: 1 run: make -j3 - name: Validate run: ./${{ matrix.executable }}.exe -validate - uses: actions/upload-artifact@main with: name: ${{ matrix.executable }}-windows-${{ matrix.compiler }}-${{ github.sha }} path: | ${{ matrix.executable }}.exe chdman.exe unidasm.exe if-no-files-found: error