mame/.github/workflows/ci-windows.yml

86 lines
2.2 KiB
YAML

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