|
8 | 8 |
|
9 | 9 | on: |
10 | 10 | schedule: |
11 | | - - cron: "0 5 * * 1,3,5" # monday,wednesday,friday 5AM |
| 11 | + - cron: '0 5 * * 1,3,5' # monday,wednesday,friday 5AM |
12 | 12 | workflow_dispatch: |
13 | 13 | inputs: |
14 | 14 | version: |
15 | | - description: "@webcontainer/api version to use" |
| 15 | + description: '@webcontainer/api version to use' |
16 | 16 | required: true |
17 | 17 | type: string |
18 | | - default: "latest" |
| 18 | + default: 'latest' |
19 | 19 | suite: |
20 | | - description: "testsuite to run" |
| 20 | + description: 'testsuite to run' |
21 | 21 | type: choice |
22 | | - default: "all" |
| 22 | + default: 'all' |
23 | 23 | options: |
24 | 24 | - all |
25 | 25 | - starters |
26 | 26 | - vitest-in-webcontainer |
27 | 27 | - webcontainer-test |
28 | 28 |
|
29 | 29 | jobs: |
30 | | - resolve_suites: |
31 | | - runs-on: ubuntu-latest |
32 | | - outputs: |
33 | | - suites: ${{ steps.set-suites.outputs.suites }} |
34 | | - steps: |
35 | | - - id: set-suites |
36 | | - run: > |
37 | | - if [[ "${{ inputs.suite }}" == "all" ]] |
38 | | - then |
39 | | - echo 'suites=[${{ env.options }}]' >> $GITHUB_OUTPUT |
40 | | - else |
41 | | - echo 'suites=["${{ inputs.suite }}"]' >> $GITHUB_OUTPUT |
42 | | - fi |
43 | | - env: |
44 | | - options: |
45 | | - - starters |
46 | | - - vitest-in-webcontainer |
47 | | - - webcontainer-test |
48 | | - |
49 | 30 | test-ecosystem: |
| 31 | + if: inputs.suite == 'all' |
50 | 32 | timeout-minutes: 60 |
51 | 33 | runs-on: ubuntu-latest |
52 | | - needs: |
53 | | - - resolve_suites |
54 | 34 | strategy: |
55 | | - matrix: |
56 | | - suite: ${{ fromJson(needs.resolve_suites.outputs.suites) }} |
57 | 35 | fail-fast: false |
| 36 | + matrix: |
| 37 | + suite: |
| 38 | + - starters |
| 39 | + - vitest-in-webcontainer |
| 40 | + - webcontainer-test |
58 | 41 | steps: |
59 | 42 | - uses: actions/checkout@v4 |
60 | 43 |
|
61 | | - - uses: actions/setup-node@v4 |
| 44 | + - name: Run ${{ matrix.suite }} |
| 45 | + uses: ./.github/actions/ecosystem-run |
62 | 46 | with: |
63 | | - node-version: 20 |
64 | | - id: setup-node |
65 | | - continue-on-error: true |
66 | | - |
67 | | - - run: corepack enable |
| 47 | + test-suite: ${{ matrix.suite }} |
| 48 | + version: ${{ inputs.version || github.event.client_payload.version }} |
68 | 49 |
|
69 | | - - run: pnpm --version |
| 50 | + test-ecosystem-selected: |
| 51 | + if: inputs.suite != 'all' |
| 52 | + timeout-minutes: 60 |
| 53 | + runs-on: ubuntu-latest |
| 54 | + steps: |
| 55 | + - uses: actions/checkout@v4 |
70 | 56 |
|
71 | | - - run: pnpm i --frozen-lockfile |
| 57 | + - run: echo "Inputs suite is '${{ inputs.suite }}'" |
72 | 58 |
|
73 | | - - run: >- |
74 | | - pnpm run test |
75 | | - --release ${{ inputs.version || github.event.client_payload.version }} |
76 | | - ${{ matrix.suite }} |
77 | | - id: ecosystem-ci-run |
| 59 | + - name: Run ${{ inputs.suite }} |
| 60 | + uses: ./.github/actions/ecosystem-run |
| 61 | + with: |
| 62 | + test-suite: ${{ inputs.suite }} |
| 63 | + version: ${{ inputs.version || github.event.client_payload.version }} |
0 commit comments