@patronage/factory-ci 1.0.0-alpha.13 → 1.0.0-alpha.15
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/README.md +2 -0
- package/dist/index.d.ts +1 -10
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -10
- package/src/proof-reuse-presentation.ts +4 -5
package/README.md
CHANGED
|
@@ -233,6 +233,8 @@ The gate is a **step, not a job**, marked `continue-on-error`, with no `set -e`.
|
|
|
233
233
|
|
|
234
234
|
`factoryProofTimingStartStep()` and `factoryProofReuseSummaryStep()` replace consumer-local proof timing summaries without taking over workflow topology. Put the start step immediately after the gate and the summary step after the guarded work. The helpers keep the established `Start CI timing` / `Record proof-reuse timing` names and distinguish pull-request reuse, pull-request full fallback, and merge-target full execution where the PR-only gate is explicitly not applicable. Reuse links the exact source check and bound head; every path emits a cheap Actions notice. Both steps are `continue-on-error`: missing timing support or an unwritable presentation destination cannot change a required job's conclusion. These helpers change no trust predicate or guard.
|
|
235
235
|
|
|
236
|
+
The raw summary script builder and the internal `ci-timing` step-id and step-name constants are not exported. Only the two step builders above are public; every production caller already consumed them through the builders, so this is a same-prerelease narrowing rather than a behavior change (#686).
|
|
237
|
+
|
|
236
238
|
### Alchemy entries
|
|
237
239
|
|
|
238
240
|
```ts
|
package/dist/index.d.ts
CHANGED
|
@@ -586,9 +586,6 @@ interface FactoryProofTimingStartStep {
|
|
|
586
586
|
readonly run: string;
|
|
587
587
|
}
|
|
588
588
|
declare const factoryProofTimingStartStep: () => FactoryProofTimingStartStep;
|
|
589
|
-
declare const factoryProofReuseSummaryScript: ({
|
|
590
|
-
surface
|
|
591
|
-
}: FactoryProofReusePresentationOptions) => string;
|
|
592
589
|
interface FactoryProofReuseSummaryStep {
|
|
593
590
|
readonly continueOnError: true;
|
|
594
591
|
readonly env: Readonly<Record<string, string>>;
|
|
@@ -630,12 +627,6 @@ declare const factoryProductionImpactWorkflow: (options: FactoryProductionImpact
|
|
|
630
627
|
//#endregion
|
|
631
628
|
//#region src/push-identity-workflow.d.ts
|
|
632
629
|
declare const FACTORY_PUSH_IDENTITY_SCHEMA_VERSION = 1;
|
|
633
|
-
declare const FACTORY_PUSH_IDENTITY_ARTIFACT_PREFIX = "factory-push-identity";
|
|
634
|
-
declare const FACTORY_PUSH_IDENTITY_RECORD_STEP_ID = "factory_push_identity_record";
|
|
635
|
-
declare const FACTORY_PUSH_IDENTITY_LOOKUP_STEP_ID = "factory_push_identity_lookup";
|
|
636
|
-
declare const FACTORY_PUSH_IDENTITY_DOWNLOAD_STEP_ID = "factory_push_identity_download";
|
|
637
|
-
declare const FACTORY_PUSH_IDENTITY_CHECKOUT_STEP_ID = "factory_push_identity_checkout";
|
|
638
|
-
declare const FACTORY_PUSH_IDENTITY_VALIDATE_STEP_ID = "factory_push_identity";
|
|
639
630
|
/** Versioned document uploaded by a push-triggered verification run. */
|
|
640
631
|
interface FactoryPushIdentityEnvelope {
|
|
641
632
|
readonly after: string;
|
|
@@ -965,4 +956,4 @@ declare const assertWorkflowShellParses: (yaml: string, options: {
|
|
|
965
956
|
readonly source: string;
|
|
966
957
|
}) => void;
|
|
967
958
|
//#endregion
|
|
968
|
-
export { type BundleAlchemyEntryOptions, type CheckoutStepOptions, type ExecuteAlchemyEntryOptions, type ExecuteAlchemyEntryResult, FACTORY_CANDIDATE_PULL_REQUEST_TYPES, FACTORY_PRODUCTION_IMPACT_BASIS_OUTPUT, FACTORY_PRODUCTION_IMPACT_DECISION_OUTPUT, FACTORY_PRODUCTION_IMPACT_STEP_ID, FACTORY_PRODUCTION_IMPACT_UNSUBSCRIBED_OUTPUT, FACTORY_PROOF_GATE_APP_ID, FACTORY_PROOF_GATE_CHECK_NAME, FACTORY_PROOF_GATE_GUARD, FACTORY_PROOF_GATE_IF, FACTORY_PROOF_GATE_MODE_OUTPUT, FACTORY_PROOF_GATE_OUTPUT, FACTORY_PROOF_GATE_REASONS, FACTORY_PROOF_GATE_REASON_OUTPUT, FACTORY_PROOF_GATE_SHELL, FACTORY_PROOF_GATE_SOURCE_URL_OUTPUT, FACTORY_PROOF_GATE_STEP_ID, FACTORY_PROOF_GATE_STEP_NAME,
|
|
959
|
+
export { type BundleAlchemyEntryOptions, type CheckoutStepOptions, type ExecuteAlchemyEntryOptions, type ExecuteAlchemyEntryResult, FACTORY_CANDIDATE_PULL_REQUEST_TYPES, FACTORY_PRODUCTION_IMPACT_BASIS_OUTPUT, FACTORY_PRODUCTION_IMPACT_DECISION_OUTPUT, FACTORY_PRODUCTION_IMPACT_STEP_ID, FACTORY_PRODUCTION_IMPACT_UNSUBSCRIBED_OUTPUT, FACTORY_PROOF_GATE_APP_ID, FACTORY_PROOF_GATE_CHECK_NAME, FACTORY_PROOF_GATE_GUARD, FACTORY_PROOF_GATE_IF, FACTORY_PROOF_GATE_MODE_OUTPUT, FACTORY_PROOF_GATE_OUTPUT, FACTORY_PROOF_GATE_REASONS, FACTORY_PROOF_GATE_REASON_OUTPUT, FACTORY_PROOF_GATE_SHELL, FACTORY_PROOF_GATE_SOURCE_URL_OUTPUT, FACTORY_PROOF_GATE_STEP_ID, FACTORY_PROOF_GATE_STEP_NAME, FACTORY_PUSH_IDENTITY_SCHEMA_VERSION, type FactoryProductionImpactWorkflow, type FactoryProductionImpactWorkflowOptions, type FactoryProofGateOptions, type FactoryProofGateReason, type FactoryProofGateStep, type FactoryProofReusePresentationOptions, type FactoryProofReuseSummaryStep, type FactoryProofTimingStartStep, type FactoryPushIdentityConsumer, type FactoryPushIdentityConsumerOptions, type FactoryPushIdentityDisposition, type FactoryPushIdentityEnvelope, type FactoryPushIdentityProducer, type FactoryPushIdentityProducerOptions, type FactoryWorkflowArtifact, type FactoryWorkflowOptions, type FactoryWorkflowSetupOptions, GitHubApiError, type GithubAppCredentials, type GithubAppTokenOptions, type InstallStepOptions, type LocalPreviewStage, type LocalPreviewStageOptions, NODE_PNPM_ACTION_FAMILY_NODE24, type NodePnpmActionFamily, type ParseLocalPreviewStageExpected, type ParsedLocalPreviewStage, type PinnedAction, type ProofReuseCommand, type ProofReuseCoverageInput, type ProofReuseCoverageReport, type SetupNodeStepOptions, VITEST_PROFILE_SCHEMA_VERSION, VITEST_PROFILE_TOOL, type VitestJsonReport, type VitestProfile, type VitestProfileDependencies, type VitestProfileDurationSummary, type VitestProfileEnvironment, VitestProfileError, type VitestProfileOptions, type VitestProfileReadResult, type VitestProfileSample, type VitestProfileSampleExecution, type VitestTestStatus, type WorkflowShellParseFailure, type WorkflowStep, assertProofReuseCoverage, assertWorkflowShellParses, bundleAlchemyEntry, captureVitestProfileEnvironment, executeAlchemyEntry, factoryCandidateOrPushCondition, factoryProductionImpactWorkflow, factoryProofGateScript, factoryProofGateStep, factoryProofReuseSummaryStep, factoryProofTimingStartStep, factoryPushIdentityConsumer, factoryPushIdentityProducer, factoryWorkflow, githubAppJwt, isLocalPreviewStage, localPreviewStage, mintInstallationToken, normalizeVitestProfileSample, parseLocalPreviewStage, productionImpactTargetOutput, proofReuseCoverage, proofReuseRequiredCommands, readVitestProfileDocument, resolveProofReuseCommands, runVitestProfile, workflowRunBlocks, workflowShellParseFailures, writeVitestProfile };
|
package/dist/index.js
CHANGED
|
@@ -2254,4 +2254,4 @@ const assertWorkflowShellParses = (yaml, options) => {
|
|
|
2254
2254
|
throw new Error(`${options.source} emits shell bash cannot parse; the runner would treat it as a no-op:\n${detail}`);
|
|
2255
2255
|
};
|
|
2256
2256
|
//#endregion
|
|
2257
|
-
export { FACTORY_CANDIDATE_PULL_REQUEST_TYPES, FACTORY_PRODUCTION_IMPACT_BASIS_OUTPUT, FACTORY_PRODUCTION_IMPACT_DECISION_OUTPUT, FACTORY_PRODUCTION_IMPACT_STEP_ID, FACTORY_PRODUCTION_IMPACT_UNSUBSCRIBED_OUTPUT, FACTORY_PROOF_GATE_APP_ID, FACTORY_PROOF_GATE_CHECK_NAME, FACTORY_PROOF_GATE_GUARD, FACTORY_PROOF_GATE_IF, FACTORY_PROOF_GATE_MODE_OUTPUT, FACTORY_PROOF_GATE_OUTPUT, FACTORY_PROOF_GATE_REASONS, FACTORY_PROOF_GATE_REASON_OUTPUT, FACTORY_PROOF_GATE_SHELL, FACTORY_PROOF_GATE_SOURCE_URL_OUTPUT, FACTORY_PROOF_GATE_STEP_ID, FACTORY_PROOF_GATE_STEP_NAME,
|
|
2257
|
+
export { FACTORY_CANDIDATE_PULL_REQUEST_TYPES, FACTORY_PRODUCTION_IMPACT_BASIS_OUTPUT, FACTORY_PRODUCTION_IMPACT_DECISION_OUTPUT, FACTORY_PRODUCTION_IMPACT_STEP_ID, FACTORY_PRODUCTION_IMPACT_UNSUBSCRIBED_OUTPUT, FACTORY_PROOF_GATE_APP_ID, FACTORY_PROOF_GATE_CHECK_NAME, FACTORY_PROOF_GATE_GUARD, FACTORY_PROOF_GATE_IF, FACTORY_PROOF_GATE_MODE_OUTPUT, FACTORY_PROOF_GATE_OUTPUT, FACTORY_PROOF_GATE_REASONS, FACTORY_PROOF_GATE_REASON_OUTPUT, FACTORY_PROOF_GATE_SHELL, FACTORY_PROOF_GATE_SOURCE_URL_OUTPUT, FACTORY_PROOF_GATE_STEP_ID, FACTORY_PROOF_GATE_STEP_NAME, FACTORY_PUSH_IDENTITY_SCHEMA_VERSION, GitHubApiError, NODE_PNPM_ACTION_FAMILY_NODE24, VITEST_PROFILE_SCHEMA_VERSION, VITEST_PROFILE_TOOL, VitestProfileError, assertProofReuseCoverage, assertWorkflowShellParses, bundleAlchemyEntry, captureVitestProfileEnvironment, executeAlchemyEntry, factoryCandidateOrPushCondition, factoryProductionImpactWorkflow, factoryProofGateScript, factoryProofGateStep, factoryProofReuseSummaryStep, factoryProofTimingStartStep, factoryPushIdentityConsumer, factoryPushIdentityProducer, factoryWorkflow, githubAppJwt, isLocalPreviewStage, localPreviewStage, mintInstallationToken, normalizeVitestProfileSample, parseLocalPreviewStage, productionImpactTargetOutput, proofReuseCoverage, proofReuseRequiredCommands, readVitestProfileDocument, resolveProofReuseCommands, runVitestProfile, workflowRunBlocks, workflowShellParseFailures, writeVitestProfile };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patronage/factory-ci",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.15",
|
|
4
4
|
"description": "Deep CI and deploy building blocks for Patronage factory projects: workflow source artifacts, hosted diff classification, Alchemy entry execution, and disposable-stage semantics",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"alchemy",
|
package/src/index.ts
CHANGED
|
@@ -82,10 +82,6 @@ export {
|
|
|
82
82
|
type FactoryProofReusePresentationOptions,
|
|
83
83
|
type FactoryProofReuseSummaryStep,
|
|
84
84
|
type FactoryProofTimingStartStep,
|
|
85
|
-
FACTORY_PROOF_TIMING_START_STEP_NAME,
|
|
86
|
-
FACTORY_PROOF_TIMING_STEP_ID,
|
|
87
|
-
FACTORY_PROOF_TIMING_SUMMARY_STEP_NAME,
|
|
88
|
-
factoryProofReuseSummaryScript,
|
|
89
85
|
factoryProofReuseSummaryStep,
|
|
90
86
|
factoryProofTimingStartStep,
|
|
91
87
|
} from "./proof-reuse-presentation.ts";
|
|
@@ -100,13 +96,7 @@ export {
|
|
|
100
96
|
productionImpactTargetOutput,
|
|
101
97
|
} from "./production-impact-workflow.ts";
|
|
102
98
|
export {
|
|
103
|
-
FACTORY_PUSH_IDENTITY_ARTIFACT_PREFIX,
|
|
104
|
-
FACTORY_PUSH_IDENTITY_CHECKOUT_STEP_ID,
|
|
105
|
-
FACTORY_PUSH_IDENTITY_DOWNLOAD_STEP_ID,
|
|
106
|
-
FACTORY_PUSH_IDENTITY_LOOKUP_STEP_ID,
|
|
107
|
-
FACTORY_PUSH_IDENTITY_RECORD_STEP_ID,
|
|
108
99
|
FACTORY_PUSH_IDENTITY_SCHEMA_VERSION,
|
|
109
|
-
FACTORY_PUSH_IDENTITY_VALIDATE_STEP_ID,
|
|
110
100
|
type FactoryPushIdentityConsumer,
|
|
111
101
|
type FactoryPushIdentityConsumerOptions,
|
|
112
102
|
type FactoryPushIdentityDisposition,
|
|
@@ -21,10 +21,9 @@ const safeLabel = (surface: string): string => {
|
|
|
21
21
|
return cleaned.length > 0 ? cleaned : "verification";
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"Record proof-reuse timing";
|
|
24
|
+
const FACTORY_PROOF_TIMING_STEP_ID = "ci-timing";
|
|
25
|
+
const FACTORY_PROOF_TIMING_START_STEP_NAME = "Start CI timing";
|
|
26
|
+
const FACTORY_PROOF_TIMING_SUMMARY_STEP_NAME = "Record proof-reuse timing";
|
|
28
27
|
|
|
29
28
|
export interface FactoryProofReusePresentationOptions {
|
|
30
29
|
/** Human-readable name of the guarded suite. */
|
|
@@ -47,7 +46,7 @@ export const factoryProofTimingStartStep = (): FactoryProofTimingStartStep =>
|
|
|
47
46
|
printf 'started_ms=%s\n' "$started_ms" >> "$GITHUB_OUTPUT"`,
|
|
48
47
|
});
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
const factoryProofReuseSummaryScript = ({
|
|
51
50
|
surface,
|
|
52
51
|
}: FactoryProofReusePresentationOptions): string => {
|
|
53
52
|
const label = safeLabel(surface);
|