Skip to content

Commit 19b9aa2

Browse files
committed
wip: minimal workflow probe
1 parent 42aab18 commit 19b9aa2

1 file changed

Lines changed: 2 additions & 118 deletions

File tree

Lines changed: 2 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,131 +1,15 @@
11
name: mcode-trajectory-studio
22

3-
# This Plugin carries three review rounds of confidentiality, containment and
4-
# bounding fixes, and each round ended with the same finding from the reviewer:
5-
# "current tests do not cover the reproduced cases". The three fixtures that should
6-
# have caught them existed and were green.
7-
#
8-
# So this workflow does not re-run the repository's own `npm run check`, which
9-
# already covers `scripts/validate.mjs` and the whole test tree on ubuntu. It adds
10-
# the evidence that has been *claimed* rather than checked for this Plugin:
11-
#
12-
# contract The plugin-scoped gates: the release gates, then the egress contract
13-
# suite that drives every tool and every route against the real
14-
# projection instead of a stub store. The `/api/overview` 500 survived
15-
# two rounds precisely because only stub stores exercised that path, so
16-
# the stub-free suite is run as its own named step rather than folded
17-
# into a count.
18-
# suite The full Plugin suite on ubuntu, macos and windows. Cross-platform
19-
# evidence was previously a hand-run claim; the previous hand-run had
20-
# not covered three platform assumptions in the tests themselves.
21-
# engines `tools/compat-matrix.mjs` under the documented Node floor, the lowest
22-
# verified release and the current line, so the manifest's floor and
23-
# verified range are asserted rather than described. On a release
24-
# outside the verified range the only permitted skip is the FTS5 search
25-
# test, and the tool fails if anything else is skipped.
26-
#
27-
# Scope is deliberately narrow: `paths:` filters this workflow to the Plugin plus
28-
# this file, so it can never block an unrelated PR. See the note in ci.yml about
29-
# why an unscoped "validate everything" job was removed there.
30-
313
on:
324
pull_request:
33-
paths:
34-
- 'plugins/weekbin/mcode-trajectory-studio/**'
35-
- '.github/workflows/mcode-trajectory-studio.yml'
36-
push:
37-
branches: [main]
38-
paths:
39-
- 'plugins/weekbin/mcode-trajectory-studio/**'
40-
- '.github/workflows/mcode-trajectory-studio.yml'
41-
# Lets a maintainer, or this Plugin's author, run the same jobs outside a PR —
42-
# which is how a github-hosted green check is captured on a fork whose
43-
# fork-to-upstream PR cannot start Actions without maintainer approval.
445
workflow_dispatch:
456

467
permissions:
478
contents: read
489

4910
jobs:
50-
contract:
51-
name: contract gates (ubuntu-latest, node 22)
52-
runs-on: ubuntu-latest
53-
timeout-minutes: 20
54-
defaults:
55-
run:
56-
working-directory: plugins/weekbin/mcode-trajectory-studio
57-
steps:
58-
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b18 # v7.0.1
59-
persist-credentials: false
60-
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
61-
with:
62-
node-version: 22
63-
# No `npm ci`: the Plugin ships zero dependencies and no build step, which is
64-
# itself part of what the release gates check.
65-
- name: release gates (version, engine claims, byte units, doc anchors, egress bounds)
66-
run: node tools/release-gates.mjs
67-
- name: every tool and route, driven against the real projection
68-
run: node --test test/egress-contract.test.mjs
69-
# The browser half of this harness is manual by nature and stays out of CI.
70-
# `--smoke` is the part a machine can judge, over a real loopback socket: the
71-
# panel binds, the document is served hardened, the capability is required and
72-
# sufficient, and the planted credential does not reach the wire. Removing the
73-
# capability check makes this step fail, which is how it was verified.
74-
- name: panel smoke over a real socket
75-
run: node tools/panel-e2e.mjs --smoke
76-
77-
suite:
78-
name: suite (${{ matrix.os }}, node 22)
79-
runs-on: ${{ matrix.os }}
80-
timeout-minutes: 25
81-
strategy:
82-
fail-fast: false
83-
matrix:
84-
os: [ubuntu-latest, macos-latest, windows-latest]
85-
defaults:
86-
run:
87-
working-directory: plugins/weekbin/mcode-trajectory-studio
88-
steps:
89-
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b18 # v7.0.1
90-
persist-credentials: false
91-
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
92-
with:
93-
node-version: 22
94-
# The Plugin suite creates and removes real temporary directories and opens
95-
# real SQLite projections, so it is serialised: the Windows jobs fail with
96-
# EBUSY when a fixture is unlinked while SQLite still holds the file.
97-
- name: plugin suite
98-
shell: bash
99-
run: node --test --test-concurrency=1 'test/*.test.mjs' 2>&1 | tee trajectory-suite.tap
100-
- name: preserve suite output, including failures
101-
if: always()
102-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
103-
with:
104-
name: trajectory-suite-${{ matrix.os }}
105-
path: plugins/weekbin/mcode-trajectory-studio/trajectory-suite.tap
106-
if-no-files-found: warn
107-
retention-days: 7
108-
109-
engines:
110-
name: engines (node ${{ matrix.node }})
11+
probe:
11112
runs-on: ubuntu-latest
112-
timeout-minutes: 25
113-
strategy:
114-
fail-fast: false
115-
matrix:
116-
# 22.13.0 is the floor: node:sqlite exists, FTS5 does not. The tool requires
117-
# that the FTS5 search test is the *only* skip there.
118-
# 22.19.0 is the lowest release in the verified range, where FTS5 is present.
119-
# 24.x is the line mcode's own engines allow today.
120-
node: ['22.13.0', '22.19.0', '24']
121-
defaults:
122-
run:
123-
working-directory: plugins/weekbin/mcode-trajectory-studio
12413
steps:
12514
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b18 # v7.0.1
126-
persist-credentials: false
127-
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
128-
with:
129-
node-version: ${{ matrix.node }}
130-
- name: assert the suite behaves as the manifest claims for this release
131-
run: node tools/compat-matrix.mjs
15+
- run: node --version

0 commit comments

Comments
 (0)