@lanefoundry/gatelane-ci-adapter 0.0.0-stage → 0.1.0
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/dist/action.d.ts +3 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +66 -0
- package/dist/action.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/package.json +32 -4
- package/README.md +0 -3
package/dist/action.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":""}
|
package/dist/action.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* gatelane CI/CD action — reads a gate report, sets GitHub Actions outputs,
|
|
4
|
+
* writes a step summary, and exits with the appropriate code.
|
|
5
|
+
*
|
|
6
|
+
* Usage in GitHub Actions:
|
|
7
|
+
* - run: node packages/ci-adapter/dist/action.js
|
|
8
|
+
* env:
|
|
9
|
+
* GATELANE_REPORT_PATH: report.json
|
|
10
|
+
*
|
|
11
|
+
* Or pipe from stdin:
|
|
12
|
+
* cat report.json | node packages/ci-adapter/dist/action.js
|
|
13
|
+
*/
|
|
14
|
+
import { readFile, appendFile } from 'node:fs/promises';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
16
|
+
import { parseGateOutput, toGitHubOutput, exitCodeForDecision, formatGitHubSummary, } from './index.js';
|
|
17
|
+
async function readStdin() {
|
|
18
|
+
const chunks = [];
|
|
19
|
+
for await (const chunk of process.stdin) {
|
|
20
|
+
chunks.push(chunk);
|
|
21
|
+
}
|
|
22
|
+
return Buffer.concat(chunks).toString('utf-8');
|
|
23
|
+
}
|
|
24
|
+
async function main() {
|
|
25
|
+
let jsonString;
|
|
26
|
+
const reportPath = process.env.GATELANE_REPORT_PATH;
|
|
27
|
+
if (reportPath) {
|
|
28
|
+
jsonString = await readFile(resolve(reportPath), 'utf-8');
|
|
29
|
+
}
|
|
30
|
+
else if (!process.stdin.isTTY) {
|
|
31
|
+
jsonString = await readStdin();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
process.stderr.write('error: set GATELANE_REPORT_PATH or pipe report JSON to stdin\n');
|
|
35
|
+
return 2;
|
|
36
|
+
}
|
|
37
|
+
const parsed = parseGateOutput(jsonString);
|
|
38
|
+
const outputs = toGitHubOutput(parsed);
|
|
39
|
+
// Set GitHub Actions outputs via $GITHUB_OUTPUT file
|
|
40
|
+
const githubOutputFile = process.env.GITHUB_OUTPUT;
|
|
41
|
+
if (githubOutputFile) {
|
|
42
|
+
const lines = Object.entries(outputs)
|
|
43
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
44
|
+
.join('\n') + '\n';
|
|
45
|
+
await appendFile(githubOutputFile, lines);
|
|
46
|
+
}
|
|
47
|
+
// Write step summary via $GITHUB_STEP_SUMMARY file
|
|
48
|
+
const summaryFile = process.env.GITHUB_STEP_SUMMARY;
|
|
49
|
+
if (summaryFile) {
|
|
50
|
+
await appendFile(summaryFile, formatGitHubSummary(parsed) + '\n');
|
|
51
|
+
}
|
|
52
|
+
// Always print to stderr for local visibility
|
|
53
|
+
process.stderr.write(`\n gatelane gate: ${parsed.decision.toUpperCase()}\n`);
|
|
54
|
+
if (parsed.winner)
|
|
55
|
+
process.stderr.write(` winner: ${parsed.winner}\n`);
|
|
56
|
+
process.stderr.write(` reason: ${parsed.reason}\n`);
|
|
57
|
+
process.stderr.write(` report: ${parsed.report_id}\n\n`);
|
|
58
|
+
// Print outputs as JSON to stdout
|
|
59
|
+
process.stdout.write(JSON.stringify(outputs, null, 2) + '\n');
|
|
60
|
+
return exitCodeForDecision(parsed.decision);
|
|
61
|
+
}
|
|
62
|
+
main().then((code) => process.exit(code), (err) => {
|
|
63
|
+
process.stderr.write(`error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @lanefoundry/gatelane-ci-adapter — parse gatelane gate output for CI/CD.
|
|
3
|
+
*
|
|
4
|
+
* Reads the JSON report produced by `gatelane eval --report` or `gatelane run --report`,
|
|
5
|
+
* extracts the promotion decision, and maps it to GitHub Actions outputs / exit codes.
|
|
6
|
+
*/
|
|
7
|
+
export type GateDecision = 'promote' | 'rollback' | 'hold_for_review';
|
|
8
|
+
export type ParsedGateOutput = {
|
|
9
|
+
decision: GateDecision;
|
|
10
|
+
winner?: string;
|
|
11
|
+
reason: string;
|
|
12
|
+
report_id: string;
|
|
13
|
+
signature: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Parse the JSON report from `gatelane eval` or `gatelane run`.
|
|
17
|
+
* Accepts the full report JSON string.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseGateOutput(jsonString: string): ParsedGateOutput;
|
|
20
|
+
/**
|
|
21
|
+
* Map parsed gate output to GitHub Actions output variables.
|
|
22
|
+
*/
|
|
23
|
+
export declare function toGitHubOutput(parsed: ParsedGateOutput): Record<string, string>;
|
|
24
|
+
/**
|
|
25
|
+
* Map decision to process exit code.
|
|
26
|
+
* promote / hold_for_review = 0 (CI passes), rollback = 1 (CI fails).
|
|
27
|
+
*/
|
|
28
|
+
export declare function exitCodeForDecision(decision: GateDecision): number;
|
|
29
|
+
/**
|
|
30
|
+
* Format a markdown summary for GitHub Actions step summary.
|
|
31
|
+
*/
|
|
32
|
+
export declare function formatGitHubSummary(parsed: ParsedGateOutput): string;
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAoBpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAyBpE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @lanefoundry/gatelane-ci-adapter — parse gatelane gate output for CI/CD.
|
|
3
|
+
*
|
|
4
|
+
* Reads the JSON report produced by `gatelane eval --report` or `gatelane run --report`,
|
|
5
|
+
* extracts the promotion decision, and maps it to GitHub Actions outputs / exit codes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse the JSON report from `gatelane eval` or `gatelane run`.
|
|
9
|
+
* Accepts the full report JSON string.
|
|
10
|
+
*/
|
|
11
|
+
export function parseGateOutput(jsonString) {
|
|
12
|
+
const raw = JSON.parse(jsonString);
|
|
13
|
+
const decision = raw.decision;
|
|
14
|
+
if (!decision || typeof decision !== 'object') {
|
|
15
|
+
throw new Error('report missing "decision" field');
|
|
16
|
+
}
|
|
17
|
+
const action = String(decision.action ?? 'rollback');
|
|
18
|
+
if (action !== 'promote' && action !== 'rollback' && action !== 'hold_for_review') {
|
|
19
|
+
throw new Error(`unexpected decision action: "${action}"`);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
decision: action,
|
|
23
|
+
winner: 'winner' in decision ? String(decision.winner) : undefined,
|
|
24
|
+
reason: String(decision.reason ?? ''),
|
|
25
|
+
report_id: String(raw.report_id ?? raw.gate_run_id ?? ''),
|
|
26
|
+
signature: String(raw.signature ?? ''),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Map parsed gate output to GitHub Actions output variables.
|
|
31
|
+
*/
|
|
32
|
+
export function toGitHubOutput(parsed) {
|
|
33
|
+
return {
|
|
34
|
+
GATELANE_DECISION: parsed.decision,
|
|
35
|
+
GATELANE_WINNER: parsed.winner ?? '',
|
|
36
|
+
GATELANE_REASON: parsed.reason,
|
|
37
|
+
GATELANE_REPORT_ID: parsed.report_id,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Map decision to process exit code.
|
|
42
|
+
* promote / hold_for_review = 0 (CI passes), rollback = 1 (CI fails).
|
|
43
|
+
*/
|
|
44
|
+
export function exitCodeForDecision(decision) {
|
|
45
|
+
return decision === 'rollback' ? 1 : 0;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Format a markdown summary for GitHub Actions step summary.
|
|
49
|
+
*/
|
|
50
|
+
export function formatGitHubSummary(parsed) {
|
|
51
|
+
const icon = parsed.decision === 'promote' ? ':white_check_mark:'
|
|
52
|
+
: parsed.decision === 'hold_for_review' ? ':warning:'
|
|
53
|
+
: ':x:';
|
|
54
|
+
const lines = [
|
|
55
|
+
`## ${icon} gatelane gate: ${parsed.decision.toUpperCase()}`,
|
|
56
|
+
'',
|
|
57
|
+
];
|
|
58
|
+
if (parsed.winner) {
|
|
59
|
+
lines.push(`**Winner:** \`${parsed.winner}\``);
|
|
60
|
+
}
|
|
61
|
+
lines.push(`**Reason:** ${parsed.reason}`);
|
|
62
|
+
lines.push(`**Report ID:** \`${parsed.report_id}\``);
|
|
63
|
+
if (parsed.signature) {
|
|
64
|
+
lines.push(`**Signature:** \`${parsed.signature.slice(0, 16)}...\``);
|
|
65
|
+
}
|
|
66
|
+
lines.push('');
|
|
67
|
+
lines.push('---');
|
|
68
|
+
lines.push('*Generated by [gatelane](https://github.com/lanefoundry/gatelane)*');
|
|
69
|
+
return lines.join('\n');
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lanefoundry/gatelane-ci-adapter",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "CI/CD adapter for gatelane — parses gate output for GitHub Actions.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/lanefoundry/gatelane.git",
|
|
9
|
+
"directory": "packages/ci-adapter"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/lanefoundry/gatelane/tree/main/packages/ci-adapter",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"bin": {
|
|
16
|
+
"gatelane-ci": "./dist/action.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc -b"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@lanefoundry/gatelane-sdk": "0.1.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/node": "^22.0.0",
|
|
32
|
+
"typescript": "^5.5.4"
|
|
33
|
+
}
|
|
34
|
+
}
|
package/README.md
DELETED