@feigi/fleet-ctl 3.82.10 → 3.82.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -38,7 +38,17 @@ ls-tree -r --name-only origin/main`):
|
|
|
38
38
|
`scripts/test`, a tracked `agent-test`).
|
|
39
39
|
|
|
40
40
|
Propose one Install step, one Check step and one Test entrypoint, all shell
|
|
41
|
-
commands run from the repository root by `sh -c
|
|
41
|
+
commands run from the repository root by `sh -c`.
|
|
42
|
+
|
|
43
|
+
**The Test entrypoint and the Check step need no running service — including
|
|
44
|
+
one the command starts itself.** A *running service* is anything a command
|
|
45
|
+
needs that it does not start as its own child process: a Docker daemon (so any
|
|
46
|
+
container, compose stack or testcontainers use), a database or other server
|
|
47
|
+
installed on the host, a host daemon, secrets or credentials in the
|
|
48
|
+
environment. A test that spawns its own server process as a child needs none.
|
|
49
|
+
Network reachability is not a service: the fleet machine is assumed online.
|
|
50
|
+
The Install step is exempt. Whether that service happens to be up while you
|
|
51
|
+
derive never changes the answer.
|
|
42
52
|
|
|
43
53
|
- **Install step** — the form that installs exactly what the repository pins
|
|
44
54
|
and rewrites nothing: the frozen or locked mode where the tool has one.
|
|
@@ -48,7 +58,7 @@ commands run from the repository root by `sh -c`:
|
|
|
48
58
|
the frozen or locked mode in the command; never rely on the environment to
|
|
49
59
|
imply it.
|
|
50
60
|
- **Test entrypoint** — every test step in the merge-gating CI jobs that can
|
|
51
|
-
run in a fresh worktree
|
|
61
|
+
run in a fresh worktree without a running service. Which steps qualify is yours to
|
|
52
62
|
decide, by reading CI and the repository. Members run it with their own
|
|
53
63
|
arguments appended (`sh -c '<test> "$@"'`), so it is one invocation: an
|
|
54
64
|
`&&` chain hands those arguments to its last command alone. Prefer a form
|
|
@@ -61,8 +71,8 @@ commands run from the repository root by `sh -c`:
|
|
|
61
71
|
resolves under its own directory option, e.g.
|
|
62
72
|
`git -C web ls-files -- '*.test.ts'`: the reader accepts a quoted pattern
|
|
63
73
|
unchecked.
|
|
64
|
-
- **Check step** — every merge-gating CI step that is not a test step
|
|
65
|
-
the Test entrypoint does not run: the format, lint and type checks the
|
|
74
|
+
- **Check step** — every merge-gating CI step that is not a test step, that
|
|
75
|
+
the Test entrypoint does not run, and that needs no running service: the format, lint and type checks the
|
|
66
76
|
repository's CI gates on, whatever they are. One invocation, in the same form
|
|
67
77
|
as the Test entrypoint: a single command, run from the repository root, with
|
|
68
78
|
the same shape rules. `true` when the repository's CI has no such step. It
|
|
@@ -73,10 +83,15 @@ commands run from the repository root by `sh -c`:
|
|
|
73
83
|
of `{"step": "<the CI step>", "reason": "<why it is left out>"}`, `'[]'` when
|
|
74
84
|
it leaves out nothing. When no single invocation covers every qualifying
|
|
75
85
|
step, take the widest one and list every qualifying step it leaves out; that
|
|
76
|
-
is never a reason to report `RECIPE NOT PROVEN`. A test step
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
is never a reason to report `RECIPE NOT PROVEN`. A test step or a non-test
|
|
87
|
+
step that needs a running service is always listed too, with that reason,
|
|
88
|
+
whether or not the service is up while you derive; so is a test step that
|
|
89
|
+
needs another OS. A non-test step that is red on `origin/main` is listed
|
|
90
|
+
with the reason `red on origin/main`. When no merge-gating test step runs
|
|
91
|
+
without a running service, there is nothing to prove: report `RECIPE NOT
|
|
92
|
+
PROVEN` with the cause **needs a running service**, never an entrypoint
|
|
93
|
+
that needs one. That is not the case above of no single invocation covering
|
|
94
|
+
every qualifying step.
|
|
80
95
|
|
|
81
96
|
## 2. Prove it — this procedure exactly
|
|
82
97
|
|
|
@@ -162,5 +177,8 @@ Your last message is exactly one of:
|
|
|
162
177
|
(the Check step is red there, so it cannot be the Check step),
|
|
163
178
|
**timed out** (a command the proof runs — the Install step, the Check step,
|
|
164
179
|
the Test entrypoint or a mutation — hung until the script's own bound stopped it),
|
|
165
|
-
|
|
166
|
-
tested)
|
|
180
|
+
**unreadable** (you could not tell from the repository how it is built or
|
|
181
|
+
tested), or **needs a running service** (every merge-gating test step needs
|
|
182
|
+
one). With **needs a running service** no run happened: give each
|
|
183
|
+
merge-gating test step and the service it needs in place of the reason and
|
|
184
|
+
the commands.
|
package/package.json
CHANGED
|
@@ -17,10 +17,9 @@ a `git archive` snapshot, a `cp -R` subset — has no `./agent-test`
|
|
|
17
17
|
unless the repository tracks its own, and a member told to run one
|
|
18
18
|
stalls on a missing script (observed with a rebase-resolver in a
|
|
19
19
|
prior-run worktree). There, tell the member the runner is absent and to
|
|
20
|
-
run
|
|
20
|
+
run the Recipe's Test entrypoint directly
|
|
21
21
|
(`~/.fleet/bin/fleet-run derive-testcmd.sh <main checkout> test --at origin/main` prints
|
|
22
|
-
it)
|
|
23
|
-
repo's own stack-free command.
|
|
22
|
+
it).
|
|
24
23
|
|
|
25
24
|
**A reused worktree may also be on the wrong COMMIT.** `git worktree add <path>
|
|
26
25
|
<branch>` checks out the existing LOCAL branch and never consults the remote, so
|