|
12 | 12 |
|
13 | 13 | env: |
14 | 14 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ |
15 | | - NODE_LTE: 22.x |
| 15 | + # MIN means minimum required (see `package.json`) |
| 16 | + NODE_MIN: 22.x |
16 | 17 | NODE_LATEST: 25.x |
| 18 | + # Where's bun's release schedule? |
| 19 | + BUN_MIN: 1.2.18 |
| 20 | + BUN_LATEST: 1.3.5 |
17 | 21 |
|
18 | 22 | jobs: |
19 | 23 | # Copy node version numbers found in env into output variables, that can be used in strategy matrixes. |
20 | | - nodeversions: |
| 24 | + runtimeversions: |
21 | 25 | runs-on: ubuntu-latest |
22 | 26 | outputs: |
23 | | - NODE_LTE: ${{ env.NODE_LTE }} |
| 27 | + NODE_MIN: ${{ env.NODE_MIN }} |
24 | 28 | NODE_LATEST: ${{ env.NODE_LATEST }} |
25 | 29 | steps: |
26 | 30 | - name: "Prepare node.js version matrix" |
27 | 31 | run: | |
28 | | - echo "NODE_LTE=${{ env.NODE_LTE }}" >> $GITHUB_OUTPUT |
| 32 | + echo "NODE_MIN=${{ env.NODE_MIN }}" >> $GITHUB_OUTPUT |
29 | 33 | echo "NODE_LATEST=${{ env.NODE_LATEST }}" >> $GITHUB_OUTPUT |
| 34 | + - name: "Prepare bun.sh version matrix" |
| 35 | + run: | |
| 36 | + echo "BUN_MIN=${{ env.BUN_MIN }}" >> $GITHUB_OUTPUT |
| 37 | + echo "BUN_LATEST=${{ env.BUN_LATEST }}" >> $GITHUB_OUTPUT |
30 | 38 |
|
31 | 39 | nodejs: |
32 | 40 | # Env variables are not available for strategy matrix, so we need to depend on output variables. |
33 | | - needs: nodeversions |
| 41 | + needs: runtimeversions |
34 | 42 |
|
35 | 43 | strategy: |
36 | 44 | matrix: |
37 | | - node-version: ["${{ needs.nodeversions.outputs.NODE_LTE }}", "${{ needs.nodeversions.outputs.NODE_LATEST }}"] |
| 45 | + node-version: ["${{ needs.runtimeversions.outputs.NODE_MIN }}", "${{ needs.runtimeversions.outputs.NODE_LATEST }}"] |
38 | 46 | os: [ubuntu-latest, windows-latest, macos-latest] |
39 | 47 |
|
40 | 48 | runs-on: ${{ matrix.os }} |
@@ -73,22 +81,15 @@ jobs: |
73 | 81 | test*.xml |
74 | 82 |
|
75 | 83 | bun: |
| 84 | + # Env variables are not available for strategy matrix, so we need to depend on output variables. |
| 85 | + needs: runtimeversions |
| 86 | + |
76 | 87 | strategy: |
77 | 88 | matrix: |
78 | | - bun-version: [1.2.18, 1.3.5] |
| 89 | + bun-version: ["${{ needs.runtimeversions.outputs.BUN_MIN }}", "${{ needs.runtimeversions.outputs.BUN_LATEST }}"] |
79 | 90 | os: [ubuntu-latest, windows-latest, macos-latest] |
80 | | - isSuccessRequired: [required, optional] |
81 | | - exclude: |
82 | | - # Only MacOS can fail, because Bun there seems to use different zlib with different results, and ZIP file comparison fails :( |
83 | | - - os: ubuntu-latest |
84 | | - isSuccessRequired: optional |
85 | | - - os: windows-latest |
86 | | - isSuccessRequired: optional |
87 | | - - os: macos-latest |
88 | | - isSuccessRequired: required |
89 | 91 |
|
90 | 92 | runs-on: ${{ matrix.os }} |
91 | | - continue-on-error: ${{ matrix.isSuccessRequired == 'optional' }} |
92 | 93 |
|
93 | 94 | steps: |
94 | 95 | - name: Workaround Windows mess and set git to keep original line endings |
|
0 commit comments