From a9062fcf10fcfd3b4bfa99aedfb433c29fea9e8a Mon Sep 17 00:00:00 2001 From: Christoph Sprenger <66515552+c-sp@users.noreply.github.com> Date: Sat, 30 Dec 2023 20:25:57 +0100 Subject: [PATCH] CI: update artifact actions to v4, use a matrix for running test roms --- .github/workflows/age-ci.yml | 298 ++++++----------------------------- 1 file changed, 45 insertions(+), 253 deletions(-) diff --git a/.github/workflows/age-ci.yml b/.github/workflows/age-ci.yml index 4765a3d..8fd3bf0 100644 --- a/.github/workflows/age-ci.yml +++ b/.github/workflows/age-ci.yml @@ -3,7 +3,6 @@ name: AGE CI on: [push, workflow_dispatch] env: - ARTIFACT_NAME: age-artifacts ARTIFACT_PATH: build/artifacts jobs: @@ -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 }} @@ -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