@packtory/cli 0.0.102 → 0.0.103
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/command-line-interface/config-loader.js +2 -33
- package/command-line-interface/config-loader.js.map +1 -1
- package/command-line-interface/one-time-password-prompt.js +0 -31
- package/command-line-interface/one-time-password-prompt.js.map +1 -1
- package/command-line-interface/preview-io/preview-io-shared.js +2 -31
- package/command-line-interface/preview-io/preview-io-shared.js.map +1 -1
- package/command-line-interface/preview-io/preview-io.js +4 -15
- package/command-line-interface/preview-io/preview-io.js.map +1 -1
- package/command-line-interface/preview-io/preview-spawn.js +1 -26
- package/command-line-interface/preview-io/preview-spawn.js.map +1 -1
- package/command-line-interface/runner/changelog-destinations.js +5 -220
- package/command-line-interface/runner/changelog-destinations.js.map +1 -1
- package/command-line-interface/runner/changelog-handler.js +5 -79
- package/command-line-interface/runner/changelog-handler.js.map +1 -1
- package/command-line-interface/runner/changelog-pr-log-config.js +1 -147
- package/command-line-interface/runner/changelog-pr-log-config.js.map +1 -1
- package/command-line-interface/runner/command-parsing.js +0 -10
- package/command-line-interface/runner/command-parsing.js.map +1 -1
- package/command-line-interface/runner/config-inspect-handler.js +4 -79
- package/command-line-interface/runner/config-inspect-handler.js.map +1 -1
- package/command-line-interface/runner/failure-printing.js +5 -75
- package/command-line-interface/runner/failure-printing.js.map +1 -1
- package/command-line-interface/runner/github-api-request.js +0 -100
- package/command-line-interface/runner/github-api-request.js.map +1 -1
- package/command-line-interface/runner/github-release-client.js +2 -102
- package/command-line-interface/runner/github-release-client.js.map +1 -1
- package/command-line-interface/runner/github-release-notes.js +1 -74
- package/command-line-interface/runner/github-release-notes.js.map +1 -1
- package/command-line-interface/runner/github-repository.js +1 -14
- package/command-line-interface/runner/github-repository.js.map +1 -1
- package/command-line-interface/runner/pack-handler.js +4 -201
- package/command-line-interface/runner/pack-handler.js.map +1 -1
- package/command-line-interface/runner/package-dependencies-handler.js +3 -53
- package/command-line-interface/runner/package-dependencies-handler.js.map +1 -1
- package/command-line-interface/runner/package-tree-handler.js +3 -66
- package/command-line-interface/runner/package-tree-handler.js.map +1 -1
- package/command-line-interface/runner/preview-handler.js +4 -50
- package/command-line-interface/runner/preview-handler.js.map +1 -1
- package/command-line-interface/runner/progress-wiring.js +0 -32
- package/command-line-interface/runner/progress-wiring.js.map +1 -1
- package/command-line-interface/runner/publish-handler.js +2 -45
- package/command-line-interface/runner/publish-handler.js.map +1 -1
- package/command-line-interface/runner/release-diff-handler.js +3 -33
- package/command-line-interface/runner/release-diff-handler.js.map +1 -1
- package/command-line-interface/runner/release-handler.js +5 -246
- package/command-line-interface/runner/release-handler.js.map +1 -1
- package/command-line-interface/runner/release-output-files.js +2 -24
- package/command-line-interface/runner/release-output-files.js.map +1 -1
- package/command-line-interface/runner/release-plan-result-printing.js +2 -25
- package/command-line-interface/runner/release-plan-result-printing.js.map +1 -1
- package/command-line-interface/runner/release-pr-branch-commit.js +2 -108
- package/command-line-interface/runner/release-pr-branch-commit.js.map +1 -1
- package/command-line-interface/runner/release-pr-github-client.js +8 -289
- package/command-line-interface/runner/release-pr-github-client.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js +3 -66
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-runs.js +1 -52
- package/command-line-interface/runner/release-pr-workflow-runs.js.map +1 -1
- package/command-line-interface/runner/release-preparation.js +4 -91
- package/command-line-interface/runner/release-preparation.js.map +1 -1
- package/command-line-interface/runner/release-publish-authorization.js +1 -66
- package/command-line-interface/runner/release-publish-authorization.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-ci.js +0 -297
- package/command-line-interface/runner/release-pull-request-ci.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.d.ts +0 -38
- package/command-line-interface/runner/release-pull-request-config.d.ts.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.js +5 -51
- package/command-line-interface/runner/release-pull-request-config.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-handler.js +9 -320
- package/command-line-interface/runner/release-pull-request-handler.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-policy.js +0 -46
- package/command-line-interface/runner/release-pull-request-policy.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-settings.js +2 -18
- package/command-line-interface/runner/release-pull-request-settings.js.map +1 -1
- package/command-line-interface/runner/report-persistence.js +2 -25
- package/command-line-interface/runner/report-persistence.js.map +1 -1
- package/command-line-interface/runner/runner-symbols.js +1 -10
- package/command-line-interface/runner/runner-symbols.js.map +1 -1
- package/command-line-interface/runner/runner.js +14 -385
- package/command-line-interface/runner/runner.js.map +1 -1
- package/command-line-interface/runner/terminal-error-chain.js +0 -101
- package/command-line-interface/runner/terminal-error-chain.js.map +1 -1
- package/command-line-interface/spinner/line-spinner-renderer.js +2 -49
- package/command-line-interface/spinner/line-spinner-renderer.js.map +1 -1
- package/command-line-interface/spinner/spinner-boot.js +1 -9
- package/command-line-interface/spinner/spinner-boot.js.map +1 -1
- package/command-line-interface/spinner/spinner-glyphs.js +1 -30
- package/command-line-interface/spinner/spinner-glyphs.js.map +1 -1
- package/command-line-interface/spinner/spinner-render-sequence.js +2 -30
- package/command-line-interface/spinner/spinner-render-sequence.js.map +1 -1
- package/command-line-interface/spinner/spinner-runtime.js +1 -30
- package/command-line-interface/spinner/spinner-runtime.js.map +1 -1
- package/command-line-interface/spinner/spinner-shared-state.js +0 -271
- package/command-line-interface/spinner/spinner-shared-state.js.map +1 -1
- package/command-line-interface/spinner/spinner-snapshots.js +1 -11
- package/command-line-interface/spinner/spinner-snapshots.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-backend.js +0 -42
- package/command-line-interface/spinner/spinner-worker-backend.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-loop.js +3 -39
- package/command-line-interface/spinner/spinner-worker-loop.js.map +1 -1
- package/command-line-interface/spinner/terminal-spinner-renderer.js +0 -54
- package/command-line-interface/spinner/terminal-spinner-renderer.js.map +1 -1
- package/common/path-tree.js +2 -100
- package/common/path-tree.js.map +1 -1
- package/package.json +2 -2
- package/packages/command-line-interface/pull-request-label-versioning.js +3 -80
- package/packages/command-line-interface/pull-request-label-versioning.js.map +1 -1
- package/packages/command-line-interface/spinner-boot.entry-point.js +3 -40
- package/packages/command-line-interface/spinner-boot.entry-point.js.map +1 -1
- package/packtory/changelog-source-file-history.js +2 -108
- package/packtory/changelog-source-file-history.js.map +1 -1
- package/packtory/packtory-changelog.js +5 -294
- package/packtory/packtory-changelog.js.map +1 -1
- package/report/html-renderer/artifact-tree-renderer.js +4 -28
- package/report/html-renderer/artifact-tree-renderer.js.map +1 -1
- package/report/html-renderer/diagnostics-renderer.js +2 -38
- package/report/html-renderer/diagnostics-renderer.js.map +1 -1
- package/report/html-renderer/diff-renderer.js +1 -28
- package/report/html-renderer/diff-renderer.js.map +1 -1
- package/report/html-renderer/eliminated-files-renderer.js +2 -15
- package/report/html-renderer/eliminated-files-renderer.js.map +1 -1
- package/report/html-renderer/html-escaping.js +0 -8
- package/report/html-renderer/html-escaping.js.map +1 -1
- package/report/html-renderer/html-primitives.js +1 -23
- package/report/html-renderer/html-primitives.js.map +1 -1
- package/report/html-renderer/html-renderer.js +4 -60
- package/report/html-renderer/html-renderer.js.map +1 -1
- package/report/html-renderer/html-styles.js +0 -176
- package/report/html-renderer/html-styles.js.map +1 -1
- package/report/html-renderer/package-renderer.js +6 -31
- package/report/html-renderer/package-renderer.js.map +1 -1
- package/report/preview/artifact-diff-builder.js +2 -19
- package/report/preview/artifact-diff-builder.js.map +1 -1
- package/report/preview/artifact-tree-builder.js +1 -19
- package/report/preview/artifact-tree-builder.js.map +1 -1
- package/report/preview/bundle-artifact-index.js +1 -15
- package/report/preview/bundle-artifact-index.js.map +1 -1
- package/report/preview/preview-document-state.js +0 -16
- package/report/preview/preview-document-state.js.map +1 -1
- package/report/preview/preview-document.js +6 -84
- package/report/preview/preview-document.js.map +1 -1
- package/report/preview/preview-result-inspectors.js +2 -33
- package/report/preview/preview-result-inspectors.js.map +1 -1
- package/report/preview/preview-summary.js +0 -25
- package/report/preview/preview-summary.js.map +1 -1
- package/report/release-diff/release-diff-document.js +2 -25
- package/report/release-diff/release-diff-document.js.map +1 -1
- package/report/release-diff/release-diff-summary.js +1 -39
- package/report/release-diff/release-diff-summary.js.map +1 -1
- package/report/terminal-renderer/terminal-artifact-renderer.js +2 -30
- package/report/terminal-renderer/terminal-artifact-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js +1 -77
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-renderer.js +2 -74
- package/report/terminal-renderer/terminal-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-tree-renderer.js +3 -16
- package/report/terminal-renderer/terminal-package-tree-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer-shared.js +3 -61
- package/report/terminal-renderer/terminal-preview-renderer-shared.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer.js +2 -54
- package/report/terminal-renderer/terminal-preview-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js +4 -145
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-renderer.js +2 -48
- package/report/terminal-renderer/terminal-release-diff-renderer.js.map +1 -1
- package/sbom.cdx.json +10 -10
|
@@ -1,298 +1 @@
|
|
|
1
|
-
const workflowRunLookupAttempts = 30;
|
|
2
|
-
const workflowRunCompletionAttempts = 120;
|
|
3
|
-
const actionRequiredPullRequestRunCleanupAttempts = 30;
|
|
4
|
-
const actionRequiredPullRequestRunCleanReads = 2;
|
|
5
|
-
const staleWorkflowRunCancellationAttempts = 30;
|
|
6
|
-
const workflowPollIntervalMilliseconds = 10_000;
|
|
7
|
-
function createRetryAttempts(count) {
|
|
8
|
-
return Array.from({ length: count }, function (_value, index) {
|
|
9
|
-
return index;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
function isLastAttempt(attempt, count) {
|
|
13
|
-
return attempt === count - 1;
|
|
14
|
-
}
|
|
15
|
-
function formatObservedRunIds(observedRunIds) {
|
|
16
|
-
if (observedRunIds.length === 0) {
|
|
17
|
-
return 'none';
|
|
18
|
-
}
|
|
19
|
-
return observedRunIds.join(', ');
|
|
20
|
-
}
|
|
21
|
-
function formatWorkflowRunLookupFailure(input) {
|
|
22
|
-
return (`Release workflow run was not created for ${input.headSha}; ` +
|
|
23
|
-
`workflow=${input.workflowFile}, branch=${input.branch}, event=workflow_dispatch, ` +
|
|
24
|
-
`observedRunIds=${formatObservedRunIds(input.observedRunIds)}`);
|
|
25
|
-
}
|
|
26
|
-
async function findDispatchedWorkflowRun(input) {
|
|
27
|
-
return input.client.findDispatchedWorkflowRun({
|
|
28
|
-
branch: input.config.branch,
|
|
29
|
-
headSha: input.headSha,
|
|
30
|
-
workflowFile: input.ciConfig.workflowFile
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
async function waitForDispatchedWorkflowRun(input) {
|
|
34
|
-
let lookup = await findDispatchedWorkflowRun(input);
|
|
35
|
-
for (const attempt of createRetryAttempts(workflowRunLookupAttempts)) {
|
|
36
|
-
if (attempt !== 0) {
|
|
37
|
-
lookup = await findDispatchedWorkflowRun(input);
|
|
38
|
-
}
|
|
39
|
-
if (lookup.runId !== undefined && !input.ignoredRunIds.has(lookup.runId)) {
|
|
40
|
-
return lookup.runId;
|
|
41
|
-
}
|
|
42
|
-
if (!isLastAttempt(attempt, workflowRunLookupAttempts)) {
|
|
43
|
-
await input.sleep(workflowPollIntervalMilliseconds);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
throw new Error(formatWorkflowRunLookupFailure({
|
|
47
|
-
branch: input.config.branch,
|
|
48
|
-
headSha: input.headSha,
|
|
49
|
-
observedRunIds: lookup.observedRunIds,
|
|
50
|
-
workflowFile: input.ciConfig.workflowFile
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
function requiredJobResultFor(runResult, context) {
|
|
54
|
-
return runResult.jobs.find(function (candidate) {
|
|
55
|
-
return candidate.name === context;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function allRequiredJobsCompleted(runResult, contexts) {
|
|
59
|
-
return contexts.every(function (context) {
|
|
60
|
-
return requiredJobResultFor(runResult, context)?.conclusion !== undefined;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function workflowStatusState(conclusion) {
|
|
64
|
-
if (conclusion === 'success') {
|
|
65
|
-
return 'success';
|
|
66
|
-
}
|
|
67
|
-
return conclusion === 'failure' ? 'failure' : 'error';
|
|
68
|
-
}
|
|
69
|
-
function workflowStatusDescription(conclusion) {
|
|
70
|
-
return `Dispatched release CI job ${conclusion}.`;
|
|
71
|
-
}
|
|
72
|
-
function workflowStatusTargetUrl(runResult, job) {
|
|
73
|
-
return job?.url ?? runResult.url;
|
|
74
|
-
}
|
|
75
|
-
async function mirrorKnownWorkflowStatuses(input) {
|
|
76
|
-
await Promise.all(input.ciConfig.requiredStatusContexts.map(async function (context) {
|
|
77
|
-
const job = requiredJobResultFor(input.runResult, context);
|
|
78
|
-
if (job === undefined) {
|
|
79
|
-
await input.client.createStatus({
|
|
80
|
-
commitSha: input.headSha,
|
|
81
|
-
context,
|
|
82
|
-
description: 'Dispatched release CI job running.',
|
|
83
|
-
state: 'pending',
|
|
84
|
-
targetUrl: input.runResult.url
|
|
85
|
-
});
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
if (job.conclusion === undefined) {
|
|
89
|
-
await input.client.createStatus({
|
|
90
|
-
commitSha: input.headSha,
|
|
91
|
-
context,
|
|
92
|
-
description: 'Dispatched release CI job running.',
|
|
93
|
-
state: 'pending',
|
|
94
|
-
targetUrl: workflowStatusTargetUrl(input.runResult, job)
|
|
95
|
-
});
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
await input.client.createStatus({
|
|
99
|
-
commitSha: input.headSha,
|
|
100
|
-
context,
|
|
101
|
-
description: workflowStatusDescription(job.conclusion),
|
|
102
|
-
state: workflowStatusState(job.conclusion),
|
|
103
|
-
targetUrl: workflowStatusTargetUrl(input.runResult, job)
|
|
104
|
-
});
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
async function waitForWorkflowCompletion(input) {
|
|
108
|
-
for (const attempt of createRetryAttempts(workflowRunCompletionAttempts)) {
|
|
109
|
-
const result = await input.client.readWorkflowRunResult(input.runId);
|
|
110
|
-
if (result.conclusion !== undefined ||
|
|
111
|
-
allRequiredJobsCompleted(result, input.ciConfig.requiredStatusContexts)) {
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
await mirrorKnownWorkflowStatuses({ ...input, runResult: result });
|
|
115
|
-
if (!isLastAttempt(attempt, workflowRunCompletionAttempts)) {
|
|
116
|
-
await input.sleep(workflowPollIntervalMilliseconds);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
throw new Error(`Release workflow run ${input.runId} did not complete`);
|
|
120
|
-
}
|
|
121
|
-
function missingWorkflowStatusDescription(context) {
|
|
122
|
-
return `Missing dispatched release CI job: ${context}.`;
|
|
123
|
-
}
|
|
124
|
-
function incompleteWorkflowStatus(context, targetUrl) {
|
|
125
|
-
return {
|
|
126
|
-
description: missingWorkflowStatusDescription(context),
|
|
127
|
-
passed: false,
|
|
128
|
-
state: 'failure',
|
|
129
|
-
targetUrl
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
function completedWorkflowStatus(conclusion, targetUrl) {
|
|
133
|
-
if (conclusion === 'success') {
|
|
134
|
-
return {
|
|
135
|
-
description: 'Dispatched release CI job success.',
|
|
136
|
-
passed: true,
|
|
137
|
-
state: 'success',
|
|
138
|
-
targetUrl
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
description: workflowStatusDescription(conclusion),
|
|
143
|
-
passed: false,
|
|
144
|
-
state: workflowStatusState(conclusion),
|
|
145
|
-
targetUrl
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
function finalWorkflowStatusFor(context, job, runResult) {
|
|
149
|
-
if (job?.conclusion === undefined) {
|
|
150
|
-
return incompleteWorkflowStatus(context, workflowStatusTargetUrl(runResult, job));
|
|
151
|
-
}
|
|
152
|
-
return completedWorkflowStatus(job.conclusion, workflowStatusTargetUrl(runResult, job));
|
|
153
|
-
}
|
|
154
|
-
async function mirrorWorkflowStatus(input) {
|
|
155
|
-
const job = requiredJobResultFor(input.runResult, input.context);
|
|
156
|
-
const status = finalWorkflowStatusFor(input.context, job, input.runResult);
|
|
157
|
-
await input.client.createStatus({
|
|
158
|
-
commitSha: input.headSha,
|
|
159
|
-
context: input.context,
|
|
160
|
-
description: status.description,
|
|
161
|
-
state: status.state,
|
|
162
|
-
targetUrl: status.targetUrl
|
|
163
|
-
});
|
|
164
|
-
return status.passed;
|
|
165
|
-
}
|
|
166
|
-
async function mirrorWorkflowStatuses(input) {
|
|
167
|
-
const statuses = await Promise.all(input.ciConfig.requiredStatusContexts.map(async function (context) {
|
|
168
|
-
return mirrorWorkflowStatus({ ...input, context });
|
|
169
|
-
}));
|
|
170
|
-
return statuses.every(Boolean);
|
|
171
|
-
}
|
|
172
|
-
async function createPendingWorkflowStatuses(input) {
|
|
173
|
-
for (const context of input.ciConfig.requiredStatusContexts) {
|
|
174
|
-
await input.client.createStatus({
|
|
175
|
-
commitSha: input.headSha,
|
|
176
|
-
context,
|
|
177
|
-
description: 'Waiting for dispatched release CI.',
|
|
178
|
-
state: 'pending',
|
|
179
|
-
targetUrl: undefined
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
async function createFailedWorkflowStatuses(input) {
|
|
184
|
-
for (const context of input.ciConfig.requiredStatusContexts) {
|
|
185
|
-
await input.client.createStatus({
|
|
186
|
-
commitSha: input.headSha,
|
|
187
|
-
context,
|
|
188
|
-
description: input.description,
|
|
189
|
-
state: 'error',
|
|
190
|
-
targetUrl: undefined
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
async function waitForActiveDispatchedWorkflowRunsToCancel(input) {
|
|
195
|
-
for (const attempt of createRetryAttempts(staleWorkflowRunCancellationAttempts)) {
|
|
196
|
-
const activeRunIds = await input.client.cancelActiveDispatchedWorkflowRuns({
|
|
197
|
-
branch: input.config.branch,
|
|
198
|
-
workflowFile: input.ciConfig.workflowFile
|
|
199
|
-
});
|
|
200
|
-
if (activeRunIds.length === 0) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
if (isLastAttempt(attempt, staleWorkflowRunCancellationAttempts)) {
|
|
204
|
-
throw new Error(`Active release workflow runs did not cancel: ${formatObservedRunIds(activeRunIds)}`);
|
|
205
|
-
}
|
|
206
|
-
await input.sleep(workflowPollIntervalMilliseconds);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
function nextActionRequiredPullRequestRunCleanReads(cleanReads, deletedRunIds) {
|
|
210
|
-
return deletedRunIds.length === 0 ? cleanReads + 1 : 0;
|
|
211
|
-
}
|
|
212
|
-
async function dispatchWorkflowRun(input) {
|
|
213
|
-
await waitForActiveDispatchedWorkflowRunsToCancel(input);
|
|
214
|
-
const baseline = await findDispatchedWorkflowRun(input);
|
|
215
|
-
await createPendingWorkflowStatuses(input);
|
|
216
|
-
await input.client.dispatchWorkflow({
|
|
217
|
-
ref: input.config.branch,
|
|
218
|
-
workflowFile: input.ciConfig.workflowFile
|
|
219
|
-
});
|
|
220
|
-
return waitForDispatchedWorkflowRun({
|
|
221
|
-
...input,
|
|
222
|
-
ignoredRunIds: new Set([...input.ignoredRunIds, ...baseline.observedRunIds])
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
async function deleteActionRequiredPullRequestRuns(input) {
|
|
226
|
-
return input.client.deleteActionRequiredPullRequestRuns({
|
|
227
|
-
branch: input.config.branch,
|
|
228
|
-
headSha: input.headSha
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
async function waitForActionRequiredPullRequestRunsToDelete(input) {
|
|
232
|
-
let cleanReads = 0;
|
|
233
|
-
for (const attempt of createRetryAttempts(actionRequiredPullRequestRunCleanupAttempts)) {
|
|
234
|
-
const deletedRunIds = await deleteActionRequiredPullRequestRuns(input);
|
|
235
|
-
cleanReads = nextActionRequiredPullRequestRunCleanReads(cleanReads, deletedRunIds);
|
|
236
|
-
if (cleanReads === actionRequiredPullRequestRunCleanReads) {
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
if (isLastAttempt(attempt, actionRequiredPullRequestRunCleanupAttempts)) {
|
|
240
|
-
throw new Error(`Action-required pull request workflow runs did not delete: ${formatObservedRunIds(deletedRunIds)}`);
|
|
241
|
-
}
|
|
242
|
-
await input.sleep(workflowPollIntervalMilliseconds);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
async function waitForConfiguredActionRequiredPullRequestRunCleanup(input, ciConfig) {
|
|
246
|
-
if (ciConfig.deleteActionRequiredPullRequestRuns) {
|
|
247
|
-
await waitForActionRequiredPullRequestRunsToDelete(input);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
async function resolveWorkflowRunIdOrFailStatuses(input, ciConfig) {
|
|
251
|
-
try {
|
|
252
|
-
await waitForConfiguredActionRequiredPullRequestRunCleanup(input, ciConfig);
|
|
253
|
-
return await dispatchWorkflowRun({ ...input, ciConfig, ignoredRunIds: new Set() });
|
|
254
|
-
}
|
|
255
|
-
catch (error) {
|
|
256
|
-
await createFailedWorkflowStatuses({
|
|
257
|
-
ciConfig,
|
|
258
|
-
client: input.client,
|
|
259
|
-
description: 'Dispatched release CI did not start.',
|
|
260
|
-
headSha: input.headSha
|
|
261
|
-
});
|
|
262
|
-
throw error;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
async function waitForWorkflowCompletionOrFailStatuses(input, ciConfig, runId) {
|
|
266
|
-
try {
|
|
267
|
-
return await waitForWorkflowCompletion({
|
|
268
|
-
ciConfig,
|
|
269
|
-
client: input.client,
|
|
270
|
-
headSha: input.headSha,
|
|
271
|
-
runId,
|
|
272
|
-
sleep: input.sleep
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
await createFailedWorkflowStatuses({
|
|
277
|
-
ciConfig,
|
|
278
|
-
client: input.client,
|
|
279
|
-
description: 'Dispatched release CI did not complete.',
|
|
280
|
-
headSha: input.headSha
|
|
281
|
-
});
|
|
282
|
-
throw error;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
export async function runConfiguredGitHubActionsCi(input) {
|
|
286
|
-
const { githubActionsCi } = input.config;
|
|
287
|
-
if (githubActionsCi === undefined) {
|
|
288
|
-
return true;
|
|
289
|
-
}
|
|
290
|
-
const runId = await resolveWorkflowRunIdOrFailStatuses(input, githubActionsCi);
|
|
291
|
-
return mirrorWorkflowStatuses({
|
|
292
|
-
ciConfig: githubActionsCi,
|
|
293
|
-
client: input.client,
|
|
294
|
-
headSha: input.headSha,
|
|
295
|
-
runResult: await waitForWorkflowCompletionOrFailStatuses(input, githubActionsCi, runId)
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
1
|
//# sourceMappingURL=release-pull-request-ci.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-ci.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-ci.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"release-pull-request-ci.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-ci.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod/mini';
|
|
2
|
-
import { Result } from 'true-myth';
|
|
3
|
-
type GitHubActionsCiConfig = {
|
|
4
|
-
readonly deleteActionRequiredPullRequestRuns: boolean;
|
|
5
|
-
readonly requiredStatusContexts: readonly string[];
|
|
6
|
-
readonly workflowFile: string;
|
|
7
|
-
};
|
|
8
|
-
export type ReleasePullRequestConfig = {
|
|
9
|
-
readonly automationAuthor: string;
|
|
10
|
-
readonly body: string;
|
|
11
|
-
readonly branch: string;
|
|
12
|
-
readonly commitSubject: string;
|
|
13
|
-
readonly defaultBranch: string;
|
|
14
|
-
readonly githubActionsCi: GitHubActionsCiConfig | undefined;
|
|
15
|
-
readonly label: string;
|
|
16
|
-
readonly title: string;
|
|
17
|
-
};
|
|
18
|
-
declare const releasePullRequestConfigContainerSchema: z.ZodMiniReadonly<z.ZodMiniObject<{
|
|
19
|
-
releasePullRequest: z.ZodMiniOptional<z.ZodMiniReadonly<z.ZodMiniObject<{
|
|
20
|
-
automationAuthor: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
21
|
-
body: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
22
|
-
branch: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
23
|
-
commitSubject: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
24
|
-
defaultBranch: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
25
|
-
githubActionsCi: z.ZodMiniOptional<z.ZodMiniReadonly<z.ZodMiniObject<{
|
|
26
|
-
trigger: z.ZodMiniLiteral<"workflow-dispatch">;
|
|
27
|
-
workflowFile: z.ZodMiniString<string>;
|
|
28
|
-
requiredStatusContexts: z.ZodMiniReadonly<z.ZodMiniTuple<readonly [z.ZodMiniString<string>], z.ZodMiniString<string>>>;
|
|
29
|
-
deleteActionRequiredPullRequestRuns: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
30
|
-
}, z.core.$strict>>>;
|
|
31
|
-
label: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
32
|
-
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
33
|
-
}, z.core.$strict>>>;
|
|
34
|
-
}, z.core.$strip>>;
|
|
35
2
|
declare const commandLineInterfacePacktoryConfigSchema: z.ZodMiniIntersection<z.ZodMiniIntersection<z.ZodMiniObject<{
|
|
36
3
|
registrySettings: z.ZodMiniOptional<z.ZodMiniReadonly<z.ZodMiniObject<{
|
|
37
4
|
registryUrl: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -1533,11 +1500,6 @@ declare const commandLineInterfacePacktoryConfigSchema: z.ZodMiniIntersection<z.
|
|
|
1533
1500
|
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1534
1501
|
}, z.core.$strict>>>;
|
|
1535
1502
|
}, z.core.$strip>>>;
|
|
1536
|
-
export type ReleasePullRequestConfigContainer = z.infer<typeof releasePullRequestConfigContainerSchema>;
|
|
1537
1503
|
export type CommandLineInterfacePacktoryConfig = Readonly<z.infer<typeof commandLineInterfacePacktoryConfigSchema>>;
|
|
1538
|
-
export type CommandLineInterfacePacktoryConfigResult = Result<CommandLineInterfacePacktoryConfig, readonly string[]>;
|
|
1539
|
-
export declare function resolveReleasePullRequestConfig(config: ReleasePullRequestConfigContainer): ReleasePullRequestConfig;
|
|
1540
|
-
export declare function parseCommandLineInterfacePacktoryConfig(config: unknown): CommandLineInterfacePacktoryConfig | undefined;
|
|
1541
|
-
export declare function validateCommandLineInterfacePacktoryConfig(config: unknown): CommandLineInterfacePacktoryConfigResult;
|
|
1542
1504
|
export {};
|
|
1543
1505
|
//# sourceMappingURL=release-pull-request-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-config.d.ts","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"release-pull-request-config.d.ts","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;KAQzB,EAAQ,IAQgB,2CAUkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAG7C,CAAC;AAEF,MAAM,wCACwC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,wCAAwC,CAAC,CAAC,CAAC;AACpH,MAAM"}
|
|
@@ -1,52 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
const releasePullRequestConfigContainerSchema = z.readonly(z.object({ releasePullRequest: z.optional(releasePullRequestSettingsSchema) }));
|
|
7
|
-
const commandLineInterfacePacktoryConfigSchema = z.intersection(packtoryConfigSchema, releasePullRequestConfigContainerSchema);
|
|
8
|
-
const defaultReleasePullRequestConfig = {
|
|
9
|
-
automationAuthor: 'github-actions[bot]',
|
|
10
|
-
body: 'Updates changelogs for the next release.',
|
|
11
|
-
branch: 'release/packtory',
|
|
12
|
-
commitSubject: 'Release packages',
|
|
13
|
-
defaultBranch: 'main',
|
|
14
|
-
githubActionsCi: undefined,
|
|
15
|
-
label: 'release',
|
|
16
|
-
title: 'Prepare release'
|
|
17
|
-
};
|
|
18
|
-
function resolveGitHubActionsCiConfig(settings) {
|
|
19
|
-
if (settings === undefined) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
deleteActionRequiredPullRequestRuns: settings.deleteActionRequiredPullRequestRuns ?? true,
|
|
24
|
-
requiredStatusContexts: settings.requiredStatusContexts,
|
|
25
|
-
workflowFile: settings.workflowFile
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function resolveStringSetting(settings, setting) {
|
|
29
|
-
return settings?.[setting] ?? defaultReleasePullRequestConfig[setting];
|
|
30
|
-
}
|
|
31
|
-
export function resolveReleasePullRequestConfig(config) {
|
|
32
|
-
const { releasePullRequest } = config;
|
|
33
|
-
return {
|
|
34
|
-
automationAuthor: resolveStringSetting(releasePullRequest, 'automationAuthor'),
|
|
35
|
-
body: resolveStringSetting(releasePullRequest, 'body'),
|
|
36
|
-
branch: resolveStringSetting(releasePullRequest, 'branch'),
|
|
37
|
-
commitSubject: resolveStringSetting(releasePullRequest, 'commitSubject'),
|
|
38
|
-
defaultBranch: resolveStringSetting(releasePullRequest, 'defaultBranch'),
|
|
39
|
-
githubActionsCi: resolveGitHubActionsCiConfig(releasePullRequest?.githubActionsCi),
|
|
40
|
-
label: resolveStringSetting(releasePullRequest, 'label'),
|
|
41
|
-
title: resolveStringSetting(releasePullRequest, 'title')
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export function parseCommandLineInterfacePacktoryConfig(config) {
|
|
45
|
-
const result = safeParse(commandLineInterfacePacktoryConfigSchema, config);
|
|
46
|
-
return result.success ? result.data : undefined;
|
|
47
|
-
}
|
|
48
|
-
export function validateCommandLineInterfacePacktoryConfig(config) {
|
|
49
|
-
const result = safeParse(commandLineInterfacePacktoryConfigSchema, config);
|
|
50
|
-
return result.success ? Result.ok(result.data) : Result.err(result.error.issues);
|
|
51
|
-
}
|
|
1
|
+
import 'zod/mini';
|
|
2
|
+
import 'true-myth';
|
|
3
|
+
import "packtory/common/schema-validation.js";
|
|
4
|
+
import "packtory/config/packtory-config-schema.js";
|
|
5
|
+
import "./release-pull-request-settings.js";
|
|
52
6
|
//# sourceMappingURL=release-pull-request-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-config.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"release-pull-request-config.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-config.ts"],"names":[],"mappings":"AAAA,OAAkB,UAAU,CAAC;AAC7B,OAAuB,WAAW,CAAC;AACnC,OAA0B,sCAAmC,CAAC;AAC9D,OAAqC,2CAAwC,CAAC;AAC9E,OAAkF,oCAAoC,CAAC"}
|