|
3 | 3 | # Deliberately NOT named emdash-release.yml: `emdash-plugin release setup` |
4 | 4 | # generates that file, and this must not collide with it. |
5 | 5 | # |
6 | | -# Two jobs, because they answer different questions: |
| 6 | +# Three jobs, because they answer different questions: |
7 | 7 | # |
8 | | -# declared gating. The versions inside our published range. A failure here |
9 | | -# is our regression and blocks the branch. |
| 8 | +# tests gating. Typecheck, manifest validation and every suite on the |
| 9 | +# EmDash version each package's harness pins. This is the |
| 10 | +# baseline that tells a harness breakage from a plugin regression. |
| 11 | +# declared gating, one job per version so they run in parallel. The |
| 12 | +# versions inside our published range. A failure here is our |
| 13 | +# regression and blocks the branch. |
10 | 14 | # latest informational, never blocks. Runs against whatever EmDash is |
11 | 15 | # current on npm. EmDash ships a minor every 6-8 days and any minor |
12 | 16 | # may carry breaking changes, so this is the signal to widen the |
|
26 | 30 | permissions: |
27 | 31 | contents: read |
28 | 32 |
|
| 33 | +concurrency: |
| 34 | + group: ${{ github.workflow }}-${{ github.ref }} |
| 35 | + cancel-in-progress: ${{ github.event_name == 'pull_request' }} |
| 36 | + |
29 | 37 | jobs: |
30 | | - declared: |
31 | | - name: declared range |
| 38 | + tests: |
| 39 | + name: tests |
32 | 40 | runs-on: ubuntu-latest |
33 | 41 | steps: |
34 | 42 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
|
41 | 49 | cache: pnpm |
42 | 50 | - run: pnpm install --frozen-lockfile |
43 | 51 | - run: pnpm typecheck |
44 | | - - run: ./scripts/compat-matrix.sh 0.39.0 0.39.1 0.40.0 0.40.1 0.41.0 0.42.0 1.0.1-rc.0:0.2.6-rc.0 |
| 52 | + # One package at a time, like the compat script: suites running in |
| 53 | + # parallel on one runner are untested. |
| 54 | + - run: pnpm --filter "./packages/*" --workspace-concurrency=1 run test |
| 55 | + |
| 56 | + declared: |
| 57 | + name: EmDash ${{ matrix.emdash }} |
| 58 | + runs-on: ubuntu-latest |
| 59 | + strategy: |
| 60 | + fail-fast: false |
| 61 | + matrix: |
| 62 | + emdash: [0.39.0, 0.39.1, 0.40.0, 0.40.1, 0.41.0, 0.42.0, "1.0.1:0.2.6"] |
| 63 | + steps: |
| 64 | + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 65 | + - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 |
| 66 | + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 |
| 67 | + with: |
| 68 | + node-version-file: .nvmrc |
| 69 | + cache: pnpm |
| 70 | + - run: pnpm install --frozen-lockfile |
| 71 | + - run: ./scripts/compat-matrix.sh --no-baseline "${{ matrix.emdash }}" |
45 | 72 |
|
46 | 73 | latest: |
47 | 74 | name: current EmDash (informational) |
|
67 | 94 | echo "harness=$(npm view @emdash-cms/plugin-test dist-tags.latest)" >> "$GITHUB_OUTPUT" |
68 | 95 | - run: | |
69 | 96 | echo "current EmDash on npm: ${{ steps.resolve.outputs.version }} (plugin-test ${{ steps.resolve.outputs.harness }})" |
70 | | - ./scripts/compat-matrix.sh "${{ steps.resolve.outputs.version }}:${{ steps.resolve.outputs.harness }}" |
| 97 | + ./scripts/compat-matrix.sh --no-baseline "${{ steps.resolve.outputs.version }}:${{ steps.resolve.outputs.harness }}" |
0 commit comments