mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-12-15 06:15:20 +01:00
[Github] Improve test workflow to merge blob reports from all shards (#6687)
* [Github] Improved test workflow to merge blobs into 1 big test * fixed workflow not checking out + test failure behavior * fixed the thingy to still merge reports when a shard fails * Fixed workflow being skipped * Fixed inverted conditional * Removed failing test demo * updated workflow to hopefully not clone entire repo * Add .nvmrc to sparse-checkout configuration * fail workflow output test * Include custom reporters, vite/vitest config in sparse checkout selection * Add src/plugins/vite to sparse checkout * Revert to checking out full repo and remove change to instruct test Unfortunately using sparse checkout won't work * Remove redundant comment * Try not using recursive submodules when cloning locales * re-addede recurse submoudules * actually disabled it * Remove extra newline --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
This commit is contained in:
parent
af2bad96f1
commit
f498a83951
28
.github/workflows/test-shard-template.yml
vendored
28
.github/workflows/test-shard-template.yml
vendored
@ -3,27 +3,19 @@ name: Test Template
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
project:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
shard:
|
shard:
|
||||||
required: true
|
required: true
|
||||||
type: number
|
type: number
|
||||||
totalShards:
|
totalShards:
|
||||||
required: true
|
required: true
|
||||||
type: number
|
type: number
|
||||||
skip:
|
|
||||||
required: true
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
# We can't use dynmically named jobs until https://github.com/orgs/community/discussions/13261 is implemented
|
# We can't use dynamically named jobs until https://github.com/orgs/community/discussions/13261 is implemented
|
||||||
name: Shard
|
name: Shard
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ !inputs.skip }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out Git repository
|
- name: Check out Git repository
|
||||||
uses: actions/checkout@v4.2.2
|
uses: actions/checkout@v4.2.2
|
||||||
@ -43,4 +35,20 @@ jobs:
|
|||||||
run: pnpm i
|
run: pnpm i
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: pnpm test:silent --shard=${{ inputs.shard }}/${{ inputs.totalShards }}
|
run: >
|
||||||
|
pnpm test:silent
|
||||||
|
--shard=${{ inputs.shard }}/${{ inputs.totalShards }}
|
||||||
|
--reporter=blob
|
||||||
|
--outputFile=test-results/blob-${{ inputs.shard }}.json || true
|
||||||
|
|
||||||
|
# NB: This CANNOT be made into a job output due to not being extractable from the matrix:
|
||||||
|
# https://github.com/orgs/community/discussions/17245
|
||||||
|
- name: Upload test result blobs
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: shard-${{ inputs.shard }}-blob
|
||||||
|
path: test-results/blob-${{ inputs.shard }}.json
|
||||||
|
retention-days: 1 # don't need to keep for very long since they get merged afterwards
|
||||||
|
overwrite: true
|
||||||
|
if-no-files-found: error
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
|||||||
39
.github/workflows/tests.yml
vendored
39
.github/workflows/tests.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
all: ${{ steps.filter.outputs.all }}
|
all: ${{ steps.filter.outputs.all }}
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: Checkout GitHub repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
sparse-checkout: |
|
sparse-checkout: |
|
||||||
@ -41,6 +41,7 @@ jobs:
|
|||||||
run-tests:
|
run-tests:
|
||||||
name: Run Tests
|
name: Run Tests
|
||||||
needs: check-path-change-filter
|
needs: check-path-change-filter
|
||||||
|
if: ${{ needs.check-path-change-filter.outputs.all == 'true'}}
|
||||||
strategy:
|
strategy:
|
||||||
# don't stop upon 1 shard failing
|
# don't stop upon 1 shard failing
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -48,7 +49,39 @@ jobs:
|
|||||||
shard: [1, 2, 3, 4, 5]
|
shard: [1, 2, 3, 4, 5]
|
||||||
uses: ./.github/workflows/test-shard-template.yml
|
uses: ./.github/workflows/test-shard-template.yml
|
||||||
with:
|
with:
|
||||||
project: main
|
|
||||||
shard: ${{ matrix.shard }}
|
shard: ${{ matrix.shard }}
|
||||||
totalShards: 5
|
totalShards: 5
|
||||||
skip: ${{ needs.check-path-change-filter.outputs.all != 'true'}}
|
|
||||||
|
check-results:
|
||||||
|
name: Check Test Results
|
||||||
|
timeout-minutes: 8
|
||||||
|
needs: run-tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.run-tests.result != 'skipped' && needs.run-tests.result != 'cancelled' }}
|
||||||
|
steps:
|
||||||
|
- name: Check out Git repository
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
with:
|
||||||
|
submodules: "recursive"
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: ".nvmrc"
|
||||||
|
cache: "pnpm"
|
||||||
|
|
||||||
|
- name: Install Packages
|
||||||
|
run: pnpm i
|
||||||
|
|
||||||
|
- name: Download blob artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
pattern: shard-?-blob
|
||||||
|
path: test-results
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Merge blobs
|
||||||
|
run: pnpm test:silent --merge-reports=test-results
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user