Skip to content

Commit

Permalink
CI: update artifact actions to v4, use a matrix for running test roms
Browse files Browse the repository at this point in the history
  • Loading branch information
c-sp committed Dec 30, 2023
1 parent 71501d9 commit a9062fc
Showing 1 changed file with 45 additions and 253 deletions.
298 changes: 45 additions & 253 deletions .github/workflows/age-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ name: AGE CI
on: [push, workflow_dispatch]

env:
ARTIFACT_NAME: age-artifacts
ARTIFACT_PATH: build/artifacts

jobs:
Expand All @@ -15,82 +14,53 @@ jobs:
###############################################################################

build-qt:
name: build Qt application
runs-on: ubuntu-22.04
steps:
# https://github.com/jurplel/install-qt-action
- name: install Qt
uses: jurplel/install-qt-action@v3
- uses: jurplel/install-qt-action@v3
with:
# for a list of available modules see:
# https://ddalcino.github.io/aqt-list-server/
modules: 'qtmultimedia'
version: '6.5.*'
cache: true

- name: checkout code
uses: actions/checkout@v4

- name: build AGE
run: build/age_ci.sh build-qt Release

- name: upload Qt artifact
uses: actions/upload-artifact@v3
- uses: actions/checkout@v4
- run: build/age_ci.sh build-qt Release
- uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: artifact-${{ github.job }}
path: ${{ env.ARTIFACT_PATH }}


build-gtest:
name: build Google Test binary
runs-on: ubuntu-22.04
steps:
- name: checkout code
uses: actions/checkout@v4

- name: build Google Test binary
run: build/age_ci.sh build-gtest Debug

- name: upload Google Test artifact
uses: actions/upload-artifact@v3
- uses: actions/checkout@v4
- run: build/age_ci.sh build-gtest Debug
- uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: artifact-${{ github.job }}
path: ${{ env.ARTIFACT_PATH }}


build-test-runner:
name: build test runner binary
runs-on: ubuntu-22.04
steps:
- name: checkout code
uses: actions/checkout@v4

- name: build test runner binary
run: build/age_ci.sh build-test-runner Release

- name: upload test runner artifact
uses: actions/upload-artifact@v3
- uses: actions/checkout@v4
- run: build/age_ci.sh build-test-runner Release
- uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: artifact-${{ github.job }}
path: ${{ env.ARTIFACT_PATH }}


build-wasm:
name: build WebAssembly binary
runs-on: ubuntu-22.04
container:
image: emscripten/emsdk:3.1.41
steps:
- name: checkout code
uses: actions/checkout@v4

- name: build binaries
run: build/age_ci.sh build-wasm Release

- name: upload WebAssembly artifact
uses: actions/upload-artifact@v3
- uses: actions/checkout@v4
- run: build/age_ci.sh build-wasm Release
- uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: artifact-${{ github.job }}
path: ${{ env.ARTIFACT_PATH }}


Expand All @@ -100,217 +70,39 @@ jobs:
##
###############################################################################

gtest:
name: run AGE test suite
run-gtest:
runs-on: ubuntu-22.04
needs: [ build-gtest ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run test suite
run: build/age_ci.sh run-gtest


test-age:
name: run age-test-roms
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests age


test-acid2:
name: run dmg-acid2 and cgb-acid2 tests
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests acid2


test-blargg:
name: run Blargg's test suite
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests blargg


test-little-things:
name: run little-things test
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests little-things


test-gambatte:
name: run Gambatte test suite
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests gambatte


test-gbmicrotest:
name: run GBMicrotest
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests gbmicrotest


test-mealybug:
name: run Mealybug Tearoom tests
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: artifact-build-gtest
path: ${{ env.ARTIFACT_PATH }}
- run: build/age_ci.sh run-gtest

- name: run tests
run: build/age_ci.sh run-tests mealybug


test-mooneye:
name: run Mooneye Test Suite
run-test-roms:
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests mooneye


test-mooneye-wilbertpol:
name: run Mooneye Test Suite (wilbertpol)
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests mooneye-wilbertpol


test-rtc3test:
name: run rtc3test
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests rtc3test


test-same-suite:
name: run SameSuite
runs-on: ubuntu-22.04
needs: [ build-test-runner ]
steps:
- name: checkout code
uses: actions/checkout@v4

- name: download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.ARTIFACT_PATH }}

- name: run tests
run: build/age_ci.sh run-tests same-suite
strategy:
fail-fast: false
matrix:
test-suite:
- acid2
- age
- blargg
- little-things
- gambatte
- gbmicrotest
- mealybug
- mooneye
- mooneye-wilbertpol
- rtc3test
- same-suite
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: artifact-build-test-runner
path: ${{ env.ARTIFACT_PATH }}
- run: build/age_ci.sh run-tests age

0 comments on commit a9062fc

Please sign in to comment.