Skip to content

Adding Marble Madness #144

Adding Marble Madness

Adding Marble Madness #144

Workflow file for this run

name: Build and Run Tests
on:
pull_request:
branches: [ "master" ]
push:
branches: [ "master" ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# Build documentation and checking proper style
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install clang-format doxygen graphviz
- name: Checking proper code styling
run: |
git submodule init extern/jaffarCommon
git submodule update extern/jaffarCommon
cp extern/jaffarCommon/.clang-format .
clang-format --version
extern/jaffarCommon/.build-tools/check-style.sh check source
extern/jaffarCommon/.build-tools/check-style.sh check games
extern/jaffarCommon/.build-tools/check-style.sh check emulators
# Build (QuickerNES) + Coverage Tests
build-QuickerNES:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerNES
run: |
git submodule init extern/quickerNES
git submodule update --recursive extern/quickerNES
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja gcovr
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -Db_coverage=true -DuseNCurses=false -Demulator=QuickerNES
- name: Building project
run: ninja -C build
- name: Running tests
run: ninja test -C build
- name: Running coverage analysis
run: ninja coverage-xml -C build
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: SergioMartin86/jaffarPlus
fail_ci_if_error: true
files: build/meson-logs/coverage.xml
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerNES
path: build/meson-logs/
# Build (QuickerNESArkanoid)
build-QuickerNESArkanoid:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerNES
run: |
git submodule init extern/quickerNES
git submodule update --recursive extern/quickerNES
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja gcovr
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -Db_coverage=true -DuseNCurses=false -Demulator=QuickerNESArkanoid
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerNESArkanoid
path: build/meson-logs/
# Build (QuickerSDLPoP)
build-QuickerSDLPoP:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerSDLPoP
run: |
git submodule init extern/quickerSDLPoP
git submodule update --recursive extern/quickerSDLPoP
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerSDLPoP
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerSDLPoP
path: build/meson-logs/
# Build (QuickerSnes9x)
build-QuickerSnes9x:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerSnes9x
run: |
git submodule init extern/quickerSnes9x
git submodule update --recursive extern/quickerSnes9x
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerSnes9x
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerSnes9x
path: build/meson-logs/
# Build (QuickerGPGX)
build-QuickerGPGX:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerGPGX
run: |
git submodule init extern/quickerGPGX
git submodule update --recursive extern/quickerGPGX
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerGPGX
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerGPGX
path: build/meson-logs/
# Build (QuickerStella)
build-QuickerStella:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerStella
run: |
git submodule init extern/quickerStella
git submodule update --recursive extern/quickerStella
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerStella
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerStella
path: build/meson-logs/
# Build (Atari2600Hawk)
build-Atari2600Hawk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout Atari2600Hawk
run: |
git submodule init extern/atari2600Hawk
git submodule update --recursive extern/atari2600Hawk
- name: Checkout Atari2600Hawk
working-directory: extern/atari2600Hawk
run: |
git submodule init source/base/core
git submodule update --recursive source/base/core
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=Atari2600Hawk
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-Atari2600Hawk
path: build/meson-logs/
# Build (QuickerSMBC)
build-QuickerSMBC:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerSMBC
run: |
git submodule init extern/quickerSMBC
git submodule update --recursive extern/quickerSMBC
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerSMBC
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs
path: build/meson-logs/
# Build (QuickerNEORAW)
build-QuickerNEORAW:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerNEORAW
run: |
git submodule init extern/quickerNEORAW
git submodule update --recursive extern/quickerNEORAW
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerNEORAW
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerNEORAW
path: build/meson-logs/
# Build (QuickerRAWGL)
build-QuickerRAWGL:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerRAWGL
run: |
git submodule init extern/quickerRAWGL
git submodule update --recursive extern/quickerRAWGL
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerRAWGL
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerRAWGL
path: build/meson-logs/
# Build (QuickerArkBot)
build-QuickerArkBot:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerArkBot
run: |
git submodule init extern/quickerArkBot
git submodule update --recursive extern/quickerArkBot
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerArkBot
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerArkBot
path: build/meson-logs/
# Build (QuickerMGBA)
build-QuickerMGBA:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerMGBA
run: |
git submodule init extern/quickerMGBA
git submodule update --recursive extern/quickerMGBA
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerMGBA
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerMGBA
path: build/meson-logs/
# Build (QuickerGambatte)
build-QuickerGambatte:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerGambatte
run: |
git submodule init extern/quickerGambatte
git submodule update --recursive extern/quickerGambatte
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerGambatte
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerGambatte
path: build/meson-logs/
# Build (QuickerDSDA)
build-QuickerDSDA:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout QuickerDSDA
run: |
git submodule init extern/quickerDSDA
git submodule update --recursive extern/quickerDSDA
- name: Create build directory
run: mkdir build
- name: Installing meson and ninja
run: python3 -m pip install meson ninja
- name: Updating Apt
run: sudo apt update
- name: Installing apt packages
run: sudo apt install libgtest-dev libnuma-dev libtbb-dev libsdl2-dev libsdl2-image-dev
- name: Run meson configuration
run: meson setup build -Dbuildtype=release -DuseNCurses=false -Demulator=QuickerDSDA
- name: Building project
run: ninja -C build
- name: Validating examples
run: meson test ValidateExamples -C build
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-QuickerDSDA
path: build/meson-logs/