From a3a4d211a78643c14eb49fe3a28efce38931e0cc Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:58:03 -0700 Subject: [PATCH] use matrix approach for tests --- .github/workflows/run-test-template.yml | 26 +++++ .github/workflows/tests.yml | 121 +++--------------------- 2 files changed, 39 insertions(+), 108 deletions(-) create mode 100644 .github/workflows/run-test-template.yml diff --git a/.github/workflows/run-test-template.yml b/.github/workflows/run-test-template.yml new file mode 100644 index 00000000000..a066faa23f5 --- /dev/null +++ b/.github/workflows/run-test-template.yml @@ -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' }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cd7b0349cb4..15e5ce940cd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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' }} \ No newline at end of file + 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 }} \ No newline at end of file