use matrix approach for tests

This commit is contained in:
flx-sta 2024-09-10 09:58:03 -07:00
parent b9606fd85a
commit a3a4d211a7
2 changed files with 39 additions and 108 deletions

26
.github/workflows/run-test-template.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Test Template
on:
workflow_call:
inputs:
project:
required: true
type: string
test_name:
required: true
type: string
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Node.js dependencies
run: npm ci
- name: Run tests
run: npx vitest --project ${{ inputs.project }} ${{ runner.debug == '1' && '' || '--silent' }}

View File

@ -18,125 +18,30 @@ on:
types: [checks_requested]
jobs:
setup:
name: Checkout Repository and Install Dependencies
pre-test:
name: Run Pre-test
runs-on: ubuntu-latest
steps:
- name: Checkout Git repository
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache Node modules
id: cache
uses: actions/cache@v3
with:
path: |
~/.npm
**/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Node.js dependencies
run: npm ci
- name: Upload Node modules
uses: actions/upload-artifact@v3
with:
name: node_modules
path: |
~/.npm
**/node_modules
- name: Upload repository
uses: actions/upload-artifact@v3
with:
name: repository
path: .
pre-test:
name: Run Pre-test
runs-on: ubuntu-latest
needs: setup
steps:
- name: Download Repository
uses: actions/download-artifact@v3
with:
name: repository
- name: Download Node modules
uses: actions/download-artifact@v3
with:
name: node_modules
- name: Run Pre-test
run: npx vitest run --project pre ${{ runner.debug == '1' && '' || '--silent' }}
run-misc-tests:
name: Run Misc Tests
run-tests:
name: Run Tests
runs-on: ubuntu-latest
needs: pre-test
steps:
- name: Download Repository
uses: actions/download-artifact@v3
with:
name: repository
- name: Download Node modules
uses: actions/download-artifact@v3
with:
name: node_modules
- name: Run Misc Tests
run: npx vitest --project misc ${{ runner.debug == '1' && '' || '--silent' }}
run-abilities-tests:
name: Run abilities tests
runs-on: ubuntu-latest
needs: pre-test
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Node.js dependencies
run: npm ci
- name: test abilities
run: npx vitest --project abilities ${{ runner.debug == '1' && '' || '--silent' }}
run-items-tests:
name: Run items tests
runs-on: ubuntu-latest
needs: pre-test
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Node.js dependencies
run: npm ci
- name: test items
run: npx vitest --project items ${{ runner.debug == '1' && '' || '--silent' }}
run-moves-tests:
name: Run moves tests
runs-on: ubuntu-latest
needs: pre-test
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Node.js dependencies
run: npm ci
- name: test moves
run: npx vitest --project moves ${{ runner.debug == '1' && '' || '--silent' }}
run-battle-tests:
name: Run battle tests
runs-on: ubuntu-latest
needs: pre-test
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Node.js dependencies
run: npm ci
- name: test battle
run: npx vitest --project battle ${{ runner.debug == '1' && '' || '--silent' }}
strategy:
matrix:
project: [misc, abilities, items, moves, battle]
test_name: [Misc Tests, Abilities Tests, Items Tests, Moves Tests, Battle Tests]
uses: ./.github/workflows/run-test-template.yml # run job defined in run-test-template.yml
with:
project: ${{ matrix.project }}
test_name: ${{ matrix.test_name }}