@restormel/testing-github-action 0.1.0 → 0.1.1
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.
- package/LICENSE +1 -1
- package/README.md +20 -6
- package/action.yml +13 -3
- package/dist/run-ci.d.ts.map +1 -1
- package/dist/run-ci.js +92 -61
- package/dist/run-ci.js.map +1 -1
- package/package.json +9 -8
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -4,31 +4,38 @@ Composite GitHub Action that runs the **same inline runner** as the local CLI (`
|
|
|
4
4
|
|
|
5
5
|
There is **no hosted control plane** in this MVP; `poll_interval_seconds` and `timeout_minutes` inputs are reserved for documentation alignment only.
|
|
6
6
|
|
|
7
|
+
## HTTP `/v1/runs` or curl pollers
|
|
8
|
+
|
|
9
|
+
The MVP runner executes **inside the Actions job** (or your CI shell) via this action or `testing run`. We do **not** ship a supported `POST`/`GET` HTTP runs API in `0.1.x`. If you previously used a vendor script that polls a remote run endpoint, migrate to the composite action or CLI so you do not fork around a non-existent API. Public background: [Restormel Testing docs — HTTP runs vs Action](https://restormel.dev/testing/docs/guides/http-runs-and-actions) (same content as the dashboard).
|
|
10
|
+
|
|
7
11
|
## Usage
|
|
8
12
|
|
|
9
13
|
Prerequisites in your workflow (before this action):
|
|
10
14
|
|
|
11
15
|
1. Checkout the repository.
|
|
12
16
|
2. Install Node (20+) and pnpm (or your package manager).
|
|
13
|
-
3. `pnpm install` and
|
|
17
|
+
3. `pnpm install` and build this package so `packages/testing-github-action/dist/` exists (e.g. `pnpm run build:testing-packages` from the monorepo root, or your package build script).
|
|
14
18
|
4. `pnpm --filter @restormel/testing-browser-playwright exec playwright install chromium` (or equivalent) for browser goals.
|
|
15
19
|
|
|
16
|
-
**Keys / `judge_rubric` (
|
|
20
|
+
**Keys / `judge_rubric` (only when needed):** purely deterministic browser goals (URL + DOM / structured checks without a judge) do **not** require `RESTORMEL_KEYS_*`. Add the block below when any goal uses `judge_rubric` or Keys HTTP resolution. Never log values:
|
|
17
21
|
|
|
18
22
|
```yaml
|
|
19
23
|
env:
|
|
20
24
|
RESTORMEL_KEYS_API_BASE_URL: ${{ secrets.RESTORMEL_KEYS_API_BASE_URL }}
|
|
21
25
|
RESTORMEL_KEYS_API_TOKEN: ${{ secrets.RESTORMEL_KEYS_API_TOKEN }}
|
|
26
|
+
RESTORMEL_PROJECT_ID: ${{ secrets.RESTORMEL_PROJECT_ID }} # from Keys dashboard → Restormel Testing
|
|
22
27
|
```
|
|
23
28
|
|
|
24
|
-
Or set `RESTORMEL_TESTING_OPENAI_FALLBACK=1` and `OPENAI_API_KEY` only with explicit team approval (documented escape hatch).
|
|
29
|
+
Or set `RESTORMEL_TESTING_OPENAI_FALLBACK=1` and `OPENAI_API_KEY` only with explicit team approval (documented escape hatch). Full guide: [docs/keys-testing-onboarding.md](../../docs/keys-testing-onboarding.md).
|
|
25
30
|
|
|
26
31
|
Then:
|
|
27
32
|
|
|
28
33
|
```yaml
|
|
29
|
-
- uses: ./packages/github-action
|
|
34
|
+
- uses: ./packages/testing-github-action
|
|
30
35
|
with:
|
|
31
36
|
suite: web-critical
|
|
37
|
+
# Or run several suites in one step (artefacts under per-suite subfolders):
|
|
38
|
+
# suites: ci-smoke,web-critical
|
|
32
39
|
environment: local
|
|
33
40
|
target_url: ${{ secrets.PREVIEW_URL }} # optional; never log the secret value
|
|
34
41
|
commit_sha: ${{ github.sha }}
|
|
@@ -42,7 +49,8 @@ Then:
|
|
|
42
49
|
|
|
43
50
|
| Input | Purpose |
|
|
44
51
|
|--------|---------|
|
|
45
|
-
| `suite` |
|
|
52
|
+
| `suite` | Single suite id when `suites` is empty. |
|
|
53
|
+
| `suites` | Comma-separated suite ids; when non-empty, `suite` is ignored and each suite gets its own artefact subdirectory. |
|
|
46
54
|
| `environment` | Optional environment id (defaults to suite’s). |
|
|
47
55
|
| `target_url` | Optional safe `base_url` override (e.g. preview). |
|
|
48
56
|
| `commit_sha` | Recorded on the run (defaults to `GITHUB_SHA`). |
|
|
@@ -55,6 +63,12 @@ Then:
|
|
|
55
63
|
| `poll_interval_seconds` | Ignored (reserved). |
|
|
56
64
|
| `timeout_minutes` | Ignored (reserved); use job timeout. |
|
|
57
65
|
|
|
66
|
+
## Multiple suite runs in one job
|
|
67
|
+
|
|
68
|
+
**Preferred:** pass **`suites: a,b,c`** (or a single `suite`) on **one** action step — artefacts go under per-suite subfolders of the same base directory.
|
|
69
|
+
|
|
70
|
+
**Alternative:** invoke this action more than once with a **unique** `RESTORMEL_TESTING_ARTIFACT_DIR` per step (or separate jobs) so `report.json` and siblings are not overwritten.
|
|
71
|
+
|
|
58
72
|
## Outputs
|
|
59
73
|
|
|
60
74
|
- `verdict` — `passed` \| `failed` \| `indeterminate` \| `skipped` \| `error`
|
|
@@ -71,7 +85,7 @@ Then:
|
|
|
71
85
|
|
|
72
86
|
On `pull_request` workflows from **forks**, GitHub does not expose your repository secrets to the job. The default **`fork_pr_policy: skip`** avoids running browser suites when `is_fork_pr` is true, so contributors are not blocked by missing secrets or unreachable private URLs.
|
|
73
87
|
|
|
74
|
-
Set **`fork_pr_policy: run`** only when the suite is safe without secrets and targets a **public** URL. Do not rely on this for `pull_request_target` without a separate security review.
|
|
88
|
+
Set **`fork_pr_policy: run`** only when the suite is safe without secrets and targets a **public** URL. Do not rely on this for `pull_request_target` without a separate security review. Reader-oriented summary: [Fork PRs and workflow triggers](https://restormel.dev/testing/docs/guides/ci-security).
|
|
75
89
|
|
|
76
90
|
## GitHub Checks API
|
|
77
91
|
|
package/action.yml
CHANGED
|
@@ -12,8 +12,16 @@ branding:
|
|
|
12
12
|
|
|
13
13
|
inputs:
|
|
14
14
|
suite:
|
|
15
|
-
description:
|
|
16
|
-
|
|
15
|
+
description: >
|
|
16
|
+
Single suite id when `suites` is empty. When `suites` is non-empty, this input is ignored.
|
|
17
|
+
required: false
|
|
18
|
+
default: ""
|
|
19
|
+
suites:
|
|
20
|
+
description: >
|
|
21
|
+
Comma-separated suite ids. When non-empty, runs each suite in sequence; artefacts go under
|
|
22
|
+
per-suite subfolders of the artefact directory (avoids overwriting when running multiple suites in one step).
|
|
23
|
+
required: false
|
|
24
|
+
default: ""
|
|
17
25
|
environment:
|
|
18
26
|
description: Environment id to run against (omit to use the suite default).
|
|
19
27
|
required: false
|
|
@@ -82,9 +90,10 @@ runs:
|
|
|
82
90
|
steps:
|
|
83
91
|
- id: exec
|
|
84
92
|
shell: bash
|
|
85
|
-
run: node "${{ github.action_path }}/dist/main.js"
|
|
86
93
|
env:
|
|
94
|
+
RESTORMEL_TESTING_ACTION_MAIN_JS: ${{ github.action_path }}/dist/main.js
|
|
87
95
|
RESTORMEL_TESTING_SUITE: ${{ inputs.suite }}
|
|
96
|
+
RESTORMEL_TESTING_SUITES: ${{ inputs.suites }}
|
|
88
97
|
RESTORMEL_TESTING_ENVIRONMENT: ${{ inputs.environment }}
|
|
89
98
|
RESTORMEL_TESTING_TARGET_URL: ${{ inputs.target_url }}
|
|
90
99
|
RESTORMEL_TESTING_COMMIT_SHA: ${{ inputs.commit_sha }}
|
|
@@ -96,3 +105,4 @@ runs:
|
|
|
96
105
|
RESTORMEL_TESTING_IS_FORK_PR: ${{ inputs.is_fork_pr }}
|
|
97
106
|
RESTORMEL_TESTING_POLL_INTERVAL_SECONDS: ${{ inputs.poll_interval_seconds }}
|
|
98
107
|
RESTORMEL_TESTING_TIMEOUT_MINUTES: ${{ inputs.timeout_minutes }}
|
|
108
|
+
run: node "$RESTORMEL_TESTING_ACTION_MAIN_JS"
|
package/dist/run-ci.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-ci.d.ts","sourceRoot":"","sources":["../src/run-ci.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-ci.d.ts","sourceRoot":"","sources":["../src/run-ci.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAqKpD"}
|
package/dist/run-ci.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import { sanitizePathSegment } from "@restormel/testing-core";
|
|
3
4
|
import { keysAdapterOptionsFromProcessEnv } from "@restormel/testing-keys-adapter";
|
|
4
5
|
import { buildGithubStepSummaryMarkdown, writeRunReportBundle } from "@restormel/testing-report";
|
|
5
6
|
import { runLocalSuite } from "@restormel/testing-runner";
|
|
@@ -54,11 +55,20 @@ export async function runCiFromEnv() {
|
|
|
54
55
|
const wd = getenv("RESTORMEL_TESTING_WORKING_DIRECTORY") ?? ".";
|
|
55
56
|
const root = join(workspace, wd);
|
|
56
57
|
process.chdir(root);
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
const suitesCsv = getenv("RESTORMEL_TESTING_SUITES")?.trim();
|
|
59
|
+
const suiteSingle = getenv("RESTORMEL_TESTING_SUITE")?.trim();
|
|
60
|
+
const suiteList = suitesCsv
|
|
61
|
+
? suitesCsv
|
|
62
|
+
.split(",")
|
|
63
|
+
.map((s) => s.trim())
|
|
64
|
+
.filter((s) => s.length > 0)
|
|
65
|
+
: suiteSingle
|
|
66
|
+
? [suiteSingle]
|
|
67
|
+
: [];
|
|
68
|
+
if (suiteList.length === 0) {
|
|
69
|
+
console.error("Set `suite` or comma-separated `suites` input when the action runs.");
|
|
60
70
|
appendSummary("## Restormel Testing");
|
|
61
|
-
appendSummary("**Error:** `suite`
|
|
71
|
+
appendSummary("**Error:** `suite` or `suites` is required.");
|
|
62
72
|
appendOutput({ verdict: "error", run_id: "", skipped: "false" });
|
|
63
73
|
return EXIT_USAGE;
|
|
64
74
|
}
|
|
@@ -73,69 +83,90 @@ export async function runCiFromEnv() {
|
|
|
73
83
|
if (pollHint !== undefined || timeoutHint !== undefined) {
|
|
74
84
|
console.warn("Note: poll_interval_seconds and timeout_minutes are ignored for the inline MVP; use the job / workflow timeout instead.");
|
|
75
85
|
}
|
|
76
|
-
const
|
|
86
|
+
const baseArtifactDir = getenv("RESTORMEL_TESTING_ARTIFACT_DIR") ??
|
|
77
87
|
join(workspace, ".restormel-testing", "runs", `gha-${process.env.GITHUB_RUN_ID ?? "local"}-${process.env.GITHUB_RUN_ATTEMPT ?? "0"}`);
|
|
78
|
-
mkdirSync(
|
|
88
|
+
mkdirSync(baseArtifactDir, { recursive: true });
|
|
79
89
|
const keysAdapterOptions = keysAdapterOptionsFromProcessEnv();
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
90
|
+
const repoHint = repository ?? "org/repo";
|
|
91
|
+
let lastRunId = "";
|
|
92
|
+
let aggregateVerdict = "passed";
|
|
93
|
+
for (let i = 0; i < suiteList.length; i++) {
|
|
94
|
+
const suite = suiteList[i];
|
|
95
|
+
const safe = sanitizePathSegment(suite) || `suite-${i}`;
|
|
96
|
+
const artifactDir = join(baseArtifactDir, safe);
|
|
97
|
+
mkdirSync(artifactDir, { recursive: true });
|
|
98
|
+
const result = await runLocalSuite({
|
|
99
|
+
configPath,
|
|
100
|
+
suiteId: suite,
|
|
101
|
+
environmentId,
|
|
102
|
+
targetUrlOverride: targetUrl,
|
|
103
|
+
commitSha,
|
|
104
|
+
repository,
|
|
105
|
+
trigger: "ci",
|
|
106
|
+
artifactDir,
|
|
107
|
+
headless: true,
|
|
108
|
+
keysAdapterOptions,
|
|
109
|
+
});
|
|
110
|
+
if (!result.ok || result.run === undefined) {
|
|
111
|
+
appendSummary("## Restormel Testing");
|
|
112
|
+
appendSummary("");
|
|
113
|
+
appendSummary(`**Suite:** \`${suite}\` — error (config or runner failure)`);
|
|
114
|
+
appendSummary("");
|
|
115
|
+
appendSummary("```text");
|
|
116
|
+
appendSummary(result.errors.join("\n") || "(no message)");
|
|
117
|
+
appendSummary("```");
|
|
118
|
+
appendOutput({ verdict: "error", run_id: "", skipped: "false" });
|
|
119
|
+
for (const w of result.warnings)
|
|
120
|
+
console.warn(w);
|
|
121
|
+
return EXIT_USAGE;
|
|
122
|
+
}
|
|
123
|
+
const run = result.run;
|
|
124
|
+
lastRunId = run.id;
|
|
125
|
+
if (run.verdict === "failed") {
|
|
126
|
+
aggregateVerdict = "failed";
|
|
127
|
+
}
|
|
128
|
+
else if (run.verdict === "indeterminate" && aggregateVerdict === "passed") {
|
|
129
|
+
aggregateVerdict = "indeterminate";
|
|
130
|
+
}
|
|
131
|
+
let reproduce = `testing run --suite ${suite} --config ${configPath} --ci`;
|
|
132
|
+
if (environmentId !== undefined)
|
|
133
|
+
reproduce += ` --environment ${environmentId}`;
|
|
134
|
+
if (targetUrl !== undefined)
|
|
135
|
+
reproduce += ` --target-url '${targetUrl.replace(/'/g, "'\\''")}'`;
|
|
136
|
+
reproduce += ` --commit-sha <sha> --repository ${repoHint}`;
|
|
137
|
+
await writeRunReportBundle(artifactDir, {
|
|
138
|
+
run,
|
|
139
|
+
traces: result.traces,
|
|
140
|
+
warnings: result.warnings.length > 0 ? result.warnings : undefined,
|
|
141
|
+
suite: result.suiteMeta,
|
|
142
|
+
reproduction: {
|
|
143
|
+
report_command: `testing report ${artifactDir}`,
|
|
144
|
+
notes: reproduce,
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
const summaryMd = buildGithubStepSummaryMarkdown({
|
|
148
|
+
run,
|
|
149
|
+
suite: result.suiteMeta,
|
|
150
|
+
warnings: result.warnings.length > 0 ? result.warnings : undefined,
|
|
151
|
+
ciContext: { prNumber, targetUrl },
|
|
152
|
+
reproduceCommand: reproduce,
|
|
153
|
+
artifactDirHint: artifactDir,
|
|
154
|
+
});
|
|
155
|
+
const summaryPath = process.env.GITHUB_STEP_SUMMARY;
|
|
156
|
+
if (summaryPath) {
|
|
157
|
+
appendFileSync(summaryPath, suiteList.length > 1 ? `### Suite \`${suite}\`\n\n${summaryMd}\n\n` : `${summaryMd}\n`, "utf8");
|
|
158
|
+
}
|
|
101
159
|
for (const w of result.warnings)
|
|
102
160
|
console.warn(w);
|
|
103
|
-
return EXIT_USAGE;
|
|
104
161
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (targetUrl !== undefined)
|
|
111
|
-
reproduce += ` --target-url '${targetUrl.replace(/'/g, "'\\''")}'`;
|
|
112
|
-
reproduce += ` --commit-sha <sha> --repository ${repoHint}`;
|
|
113
|
-
await writeRunReportBundle(artifactDir, {
|
|
114
|
-
run,
|
|
115
|
-
traces: result.traces,
|
|
116
|
-
warnings: result.warnings.length > 0 ? result.warnings : undefined,
|
|
117
|
-
suite: result.suiteMeta,
|
|
118
|
-
reproduction: {
|
|
119
|
-
report_command: `testing report ${artifactDir}`,
|
|
120
|
-
notes: reproduce,
|
|
121
|
-
},
|
|
122
|
-
});
|
|
123
|
-
const summaryMd = buildGithubStepSummaryMarkdown({
|
|
124
|
-
run,
|
|
125
|
-
suite: result.suiteMeta,
|
|
126
|
-
warnings: result.warnings.length > 0 ? result.warnings : undefined,
|
|
127
|
-
ciContext: { prNumber, targetUrl },
|
|
128
|
-
reproduceCommand: reproduce,
|
|
129
|
-
artifactDirHint: artifactDir,
|
|
130
|
-
});
|
|
131
|
-
const summaryPath = process.env.GITHUB_STEP_SUMMARY;
|
|
132
|
-
if (summaryPath) {
|
|
133
|
-
appendFileSync(summaryPath, `${summaryMd}\n`, "utf8");
|
|
162
|
+
if (suiteList.length > 1) {
|
|
163
|
+
const summaryPath = process.env.GITHUB_STEP_SUMMARY;
|
|
164
|
+
if (summaryPath) {
|
|
165
|
+
appendFileSync(summaryPath, `\n---\n\n**Multi-suite:** ${suiteList.length} suite(s). Base artefact dir: \`${baseArtifactDir}\`. Aggregate verdict: **${aggregateVerdict}**.\n`, "utf8");
|
|
166
|
+
}
|
|
134
167
|
}
|
|
135
|
-
appendOutput({ verdict:
|
|
136
|
-
|
|
137
|
-
console.warn(w);
|
|
138
|
-
if (run.verdict !== "passed") {
|
|
168
|
+
appendOutput({ verdict: aggregateVerdict, run_id: lastRunId, skipped: "false" });
|
|
169
|
+
if (aggregateVerdict !== "passed") {
|
|
139
170
|
return EXIT_FAILED;
|
|
140
171
|
}
|
|
141
172
|
return EXIT_OK;
|
package/dist/run-ci.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-ci.js","sourceRoot":"","sources":["../src/run-ci.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run-ci.js","sourceRoot":"","sources":["../src/run-ci.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@restormel/testing-github-action",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "GitHub Action entrypoint for Restormel / Testing (inline runner MVP).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/Allotment-Technology-Ltd/restormel-
|
|
9
|
-
"directory": "packages/github-action"
|
|
8
|
+
"url": "https://github.com/Allotment-Technology-Ltd/restormel-keys.git",
|
|
9
|
+
"directory": "packages/testing-github-action"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/Allotment-Technology-Ltd/restormel-
|
|
12
|
+
"url": "https://github.com/Allotment-Technology-Ltd/restormel-keys/issues"
|
|
13
13
|
},
|
|
14
|
-
"homepage": "https://github.com/Allotment-Technology-Ltd/restormel-testing/tree/main/packages/github-action#readme",
|
|
14
|
+
"homepage": "https://github.com/Allotment-Technology-Ltd/restormel-testing/tree/main/packages/testing-github-action#readme",
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
"node": ">=20"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@restormel/testing-
|
|
30
|
-
"@restormel/testing-report": "0.1.
|
|
31
|
-
"@restormel/testing-runner": "0.1.
|
|
29
|
+
"@restormel/testing-core": "0.1.1",
|
|
30
|
+
"@restormel/testing-report": "0.1.1",
|
|
31
|
+
"@restormel/testing-runner": "0.1.1",
|
|
32
|
+
"@restormel/testing-keys-adapter": "0.1.1"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"typescript": "^5.7.0"
|