name: CI (Linux) on: push: paths: - '.github/workflows/**' - '3rdparty/**' - 'hash/**' - 'scripts/**' - 'src/**' - 'COPYING' - 'makefile' pull_request: paths: - '.github/workflows/**' - '3rdparty/**' - 'hash/**' - 'scripts/**' - 'src/**' - 'COPYING' - 'makefile' permissions: contents: read jobs: build-linux: strategy: matrix: compiler: [gcc, clang] include: - compiler: gcc cc: gcc cxx: g++ archopts: -U_FORTIFY_SOURCE subtarget: tiny executable: mametiny - compiler: clang cc: clang cxx: clang++ subtarget: mame executable: mame runs-on: ubuntu-latest steps: - uses: actions/checkout@main with: fetch-depth: 0 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libfontconfig-dev libasound2-dev libxinerama-dev libxi-dev qtbase5-dev qtbase5-dev-tools - name: Install clang if: matrix.compiler == 'clang' run: sudo apt-get install -y clang - name: Build env: OVERRIDE_CC: ${{ matrix.cc }} OVERRIDE_CXX: ${{ matrix.cxx }} ARCHOPTS: ${{ matrix.archopts }} SUBTARGET: ${{ matrix.subtarget }} TOOLS: 1 run: make -j3 - name: Validate run: ./${{ matrix.executable }} -validate - name: Reconcile driver list run: ./${{ matrix.executable }} -listxml | python scripts/build/makedep.py reconcilelist -l src/mame/${{ matrix.subtarget }}.lst - - name: ORM check run: python scripts/minimaws/minimaws.py load --executable ./${{ matrix.executable }} --softwarepath hash - uses: actions/upload-artifact@main with: name: ${{ matrix.executable }}-linux-${{ matrix.compiler }}-${{ github.sha }} path: | ${{ matrix.executable }} chdman unidasm if-no-files-found: error