@juangcarmona/lighthouse-sdlc 0.17.1 → 0.18.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/README.md +15 -3
- package/capabilities.json +2 -1
- package/epic-delivery.md +35 -0
- package/github-actions.md +21 -3
- package/host-contract.md +2 -0
- package/package.json +4 -1
- package/schemas/product-change.schema.json +23 -4
- package/schemas/stage-result.schema.json +23 -1
- package/skills/product-change/SKILL.md +3 -3
- package/skills/refine/SKILL.md +3 -2
- package/src/completion-actions.mjs +49 -12
- package/src/completion.mjs +1 -1
- package/src/contracts.mjs +10 -0
- package/src/decompose.mjs +5 -2
- package/src/epic-dispatch.mjs +59 -0
- package/src/epic-github.mjs +111 -0
- package/src/epic-journal.mjs +104 -0
- package/src/epic-merge.mjs +91 -0
- package/src/epic-native.mjs +465 -0
- package/src/epic.mjs +86 -0
- package/src/handoff.mjs +97 -0
- package/src/host-contract.mjs +22 -6
- package/src/implementation.mjs +33 -5
- package/src/install-workflows.mjs +1 -1
- package/src/issue-actions.mjs +368 -78
- package/src/opencode-execute.mjs +20 -0
- package/src/pr-state-actions.mjs +21 -7
- package/src/pr-state.mjs +18 -1
- package/src/product-change-actions.mjs +158 -46
- package/src/product-change.mjs +92 -11
- package/src/proposal-review.mjs +16 -6
- package/src/proposal.mjs +13 -1
- package/src/stacked.mjs +14 -3
- package/src/stage-dispatch.mjs +66 -19
- package/src/stage-transition.mjs +151 -2
- package/src/triage.mjs +4 -2
- package/src/unattended-actions.mjs +39 -12
- package/src/unattended.mjs +1 -1
- package/src/worker-maintenance.mjs +15 -3
- package/src/worker-recovery.mjs +209 -8
- package/workflows/lighthouse-sdlc-apply-product-change.lock.yml +97 -11
- package/workflows/lighthouse-sdlc-apply-product-change.md +75 -6
- package/workflows/lighthouse-sdlc-apply-review.lock.yml +33 -2
- package/workflows/lighthouse-sdlc-apply-review.md +29 -1
- package/workflows/lighthouse-sdlc-epic.yml +79 -0
- package/workflows/lighthouse-sdlc-implement.lock.yml +38 -2
- package/workflows/lighthouse-sdlc-implement.md +33 -2
- package/workflows/lighthouse-sdlc-integrate.lock.yml +4 -1
- package/workflows/lighthouse-sdlc-integrate.md +3 -0
- package/workflows/lighthouse-sdlc-product-change.lock.yml +39 -4
- package/workflows/lighthouse-sdlc-product-change.md +39 -6
- package/workflows/lighthouse-sdlc-propose.lock.yml +13 -1
- package/workflows/lighthouse-sdlc-propose.md +11 -1
- package/workflows/lighthouse-sdlc-refine.lock.yml +29 -2
- package/workflows/lighthouse-sdlc-refine.md +25 -2
- package/workflows/lighthouse-sdlc-review.lock.yml +4 -1
- package/workflows/lighthouse-sdlc-review.md +3 -0
- package/workflows/lighthouse-sdlc-router.yml +47 -3
- package/workflows/lighthouse-sdlc-triage.lock.yml +30 -3
- package/workflows/lighthouse-sdlc-triage.md +26 -3
- package/workflows/lighthouse-worker-maintenance.yml +70 -1
|
@@ -29,7 +29,7 @@ on:
|
|
|
29
29
|
required: true
|
|
30
30
|
type: string
|
|
31
31
|
needs: [prepare]
|
|
32
|
-
if:
|
|
32
|
+
if: "false"
|
|
33
33
|
runs-on: [self-hosted, linux, lighthouse-workflow]
|
|
34
34
|
runs-on-slim: ubuntu-24.04
|
|
35
35
|
timeout-minutes: 30
|
|
@@ -62,7 +62,7 @@ jobs:
|
|
|
62
62
|
permissions:
|
|
63
63
|
actions: read
|
|
64
64
|
contents: read
|
|
65
|
-
issues:
|
|
65
|
+
issues: write
|
|
66
66
|
pull-requests: read
|
|
67
67
|
env:
|
|
68
68
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
@@ -92,6 +92,30 @@ jobs:
|
|
|
92
92
|
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/product-apply.json
|
|
93
93
|
if-no-files-found: error
|
|
94
94
|
retention-days: 14
|
|
95
|
+
- name: Check out the approved private source without persisted credentials
|
|
96
|
+
if: steps.prepare.outputs.eligible == 'true'
|
|
97
|
+
uses: actions/checkout@v5
|
|
98
|
+
with:
|
|
99
|
+
ref: ${{ steps.prepare.outputs.head }}
|
|
100
|
+
path: product-source
|
|
101
|
+
fetch-depth: 0
|
|
102
|
+
persist-credentials: false
|
|
103
|
+
- name: Preserve the approved source for the credential-free provider
|
|
104
|
+
if: steps.prepare.outputs.eligible == 'true'
|
|
105
|
+
env:
|
|
106
|
+
APPROVED_HEAD: ${{ steps.prepare.outputs.head }}
|
|
107
|
+
run: |
|
|
108
|
+
test "$(git -C product-source rev-parse HEAD)" = "$APPROVED_HEAD"
|
|
109
|
+
if git -C product-source config --local --name-only --get-regexp '^http\..*\.extraheader$' >/dev/null; then exit 1; fi
|
|
110
|
+
tar -czf "$RUNNER_TEMP/lighthouse-product-source.tar.gz" -C product-source .
|
|
111
|
+
- name: Upload the approved source
|
|
112
|
+
if: steps.prepare.outputs.eligible == 'true'
|
|
113
|
+
uses: actions/upload-artifact@v7
|
|
114
|
+
with:
|
|
115
|
+
name: lighthouse-product-apply-source-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
116
|
+
path: ${{ runner.temp }}/lighthouse-product-source.tar.gz
|
|
117
|
+
if-no-files-found: error
|
|
118
|
+
retention-days: 14
|
|
95
119
|
apply:
|
|
96
120
|
name: Apply with the pinned ProductShape provider
|
|
97
121
|
needs: [prepare]
|
|
@@ -99,10 +123,13 @@ jobs:
|
|
|
99
123
|
runs-on: ubuntu-24.04
|
|
100
124
|
permissions: {}
|
|
101
125
|
steps:
|
|
102
|
-
-
|
|
126
|
+
- name: Load the approved source without credentials
|
|
127
|
+
uses: actions/download-artifact@v8
|
|
103
128
|
with:
|
|
104
|
-
|
|
105
|
-
|
|
129
|
+
name: lighthouse-product-apply-source-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
130
|
+
path: ${{ runner.temp }}/product-source
|
|
131
|
+
- name: Restore the approved source
|
|
132
|
+
run: tar -xzf "$RUNNER_TEMP/product-source/lighthouse-product-source.tar.gz" -C "$GITHUB_WORKSPACE"
|
|
106
133
|
- uses: actions/checkout@v5
|
|
107
134
|
with:
|
|
108
135
|
repository: juangcarmona/lighthouse
|
|
@@ -113,6 +140,7 @@ jobs:
|
|
|
113
140
|
with:
|
|
114
141
|
node-version: 24
|
|
115
142
|
- name: Install provider packages without credentials
|
|
143
|
+
working-directory: .lighthouse-harness
|
|
116
144
|
run: |
|
|
117
145
|
npm ci --ignore-scripts
|
|
118
146
|
npm install --no-save --package-lock=false --ignore-scripts @prodshape/integration-openspec@0.6.6
|
|
@@ -133,13 +161,20 @@ jobs:
|
|
|
133
161
|
${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/affected-citations.json
|
|
134
162
|
if-no-files-found: error
|
|
135
163
|
retention-days: 30
|
|
164
|
+
- name: Preserve the bounded apply proof
|
|
165
|
+
uses: actions/upload-artifact@v7
|
|
166
|
+
with:
|
|
167
|
+
name: lighthouse-product-apply-proof-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
168
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/apply-proof.json
|
|
169
|
+
if-no-files-found: error
|
|
170
|
+
retention-days: 30
|
|
136
171
|
publish:
|
|
137
172
|
name: Recheck and publish provider output
|
|
138
173
|
needs: [prepare, apply]
|
|
139
174
|
if: always() && needs.prepare.outputs.eligible == 'true'
|
|
140
175
|
runs-on: ubuntu-24.04
|
|
141
176
|
permissions:
|
|
142
|
-
actions:
|
|
177
|
+
actions: write
|
|
143
178
|
contents: write
|
|
144
179
|
issues: write
|
|
145
180
|
pull-requests: write
|
|
@@ -169,6 +204,12 @@ jobs:
|
|
|
169
204
|
with:
|
|
170
205
|
name: lighthouse-product-apply-result-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
171
206
|
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
|
|
207
|
+
- name: Load the bounded apply proof
|
|
208
|
+
if: needs.apply.result == 'success'
|
|
209
|
+
uses: actions/download-artifact@v8
|
|
210
|
+
with:
|
|
211
|
+
name: lighthouse-product-apply-proof-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
212
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
|
|
172
213
|
- name: Stop when the provider apply did not complete
|
|
173
214
|
if: needs.apply.result != 'success'
|
|
174
215
|
run: exit 1
|
|
@@ -176,6 +217,34 @@ jobs:
|
|
|
176
217
|
env:
|
|
177
218
|
GH_TOKEN: ${{ github.token }}
|
|
178
219
|
run: node src/packages/sdlc/src/issue-actions.mjs product-apply-publish
|
|
220
|
+
finalize:
|
|
221
|
+
name: Report an interrupted product apply
|
|
222
|
+
needs: [prepare, apply, publish]
|
|
223
|
+
if: always()
|
|
224
|
+
runs-on: ubuntu-24.04
|
|
225
|
+
permissions:
|
|
226
|
+
actions: read
|
|
227
|
+
contents: read
|
|
228
|
+
issues: write
|
|
229
|
+
pull-requests: write
|
|
230
|
+
env:
|
|
231
|
+
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
232
|
+
LIGHTHOUSE_PREPARE_RESULT: ${{ needs.prepare.result }}
|
|
233
|
+
LIGHTHOUSE_APPLY_RESULT: ${{ needs.apply.result }}
|
|
234
|
+
LIGHTHOUSE_PUBLISH_RESULT: ${{ needs.publish.result }}
|
|
235
|
+
steps:
|
|
236
|
+
- uses: actions/checkout@v5
|
|
237
|
+
with:
|
|
238
|
+
repository: juangcarmona/lighthouse
|
|
239
|
+
ref: __LIGHTHOUSE_REF__
|
|
240
|
+
persist-credentials: false
|
|
241
|
+
- uses: actions/setup-node@v5
|
|
242
|
+
with:
|
|
243
|
+
node-version: 24
|
|
244
|
+
- name: Publish the authenticated outcome
|
|
245
|
+
env:
|
|
246
|
+
GH_TOKEN: ${{ github.token }}
|
|
247
|
+
run: node src/packages/sdlc/src/issue-actions.mjs product-apply-cleanup
|
|
179
248
|
---
|
|
180
249
|
|
|
181
250
|
# Apply an approved Product Change
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"
|
|
1
|
+
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"2e0f36cc4374427b7e70b9fb667e4317a4e885f86a5d3416a8e6a9bdc78ef855","body_hash":"8151890e19043f86541decb00d0dc86741daec051c004feb7beab27b025e3621","compiler_version":"v0.93.2","agent_id":"opencode","engine_versions":{"opencode":"2.1.0"},"agent_image_runner":"[\"self-hosted\",\"linux\",\"lighthouse-workflow\"]"}
|
|
2
2
|
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/checkout","sha":"fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09","version":"v5"},{"repo":"actions/download-artifact","sha":"9000827ccba6bdab643e8b6fd33ac0654aef8333","version":"v8.0.2"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"949feb2413d6458794dcd2491c4babbbce0c15c1","version":"v7.1.0"},{"repo":"actions/setup-node","sha":"a0853c24544627f65ddf259abe73b1d18a591444","version":"v5"},{"repo":"actions/upload-artifact","sha":"cf430e030ddbb5b0abf93d22962f4752f3646cd9","version":"v7.0.2"},{"repo":"github/gh-aw-actions/setup","sha":"d9128eb3ea40c18b77c76184eda03c0ff2608d79","version":"v0.93.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382","pinned_image":"ghcr.io/github/gh-aw-node@sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382"}],"mcp_servers":[{"name":"safeoutputs","tools":["noop"]}],"threat_detection":{"mode":"disabled"},"admission":false}
|
|
3
3
|
# This file was automatically generated by gh-aw (v0.93.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
|
|
4
4
|
#
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#
|
|
32
32
|
# Frontmatter env variables:
|
|
33
33
|
# - LIGHTHOUSE_DISPATCH_REQUIRED: (main workflow)
|
|
34
|
+
# - LIGHTHOUSE_EPIC_CAPACITY: (main workflow)
|
|
34
35
|
# - LIGHTHOUSE_RECOVERY_ENABLED: (main workflow)
|
|
35
36
|
# - LIGHTHOUSE_WORKER: (main workflow)
|
|
36
37
|
#
|
|
@@ -69,6 +70,10 @@ on:
|
|
|
69
70
|
description: Authenticated router receipt comment ID
|
|
70
71
|
required: true
|
|
71
72
|
type: string
|
|
73
|
+
epic-parent:
|
|
74
|
+
description: Authenticated parent issue for shared epic serialization
|
|
75
|
+
required: false
|
|
76
|
+
type: string
|
|
72
77
|
issue:
|
|
73
78
|
description: Source issue
|
|
74
79
|
required: true
|
|
@@ -79,13 +84,14 @@ permissions: {}
|
|
|
79
84
|
|
|
80
85
|
concurrency:
|
|
81
86
|
cancel-in-progress: false
|
|
82
|
-
group: lighthouse-issue
|
|
87
|
+
group: ${{ inputs.epic-parent && format('lighthouse-epic-child-{0}', inputs.issue) || format('lighthouse-issue-{0}', inputs.issue) }}
|
|
83
88
|
queue: max
|
|
84
89
|
|
|
85
90
|
run-name: "apply-review #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
86
91
|
|
|
87
92
|
env:
|
|
88
93
|
LIGHTHOUSE_DISPATCH_REQUIRED: "true"
|
|
94
|
+
LIGHTHOUSE_EPIC_CAPACITY: ${{ vars.LIGHTHOUSE_EPIC_CAPACITY }}
|
|
89
95
|
LIGHTHOUSE_RECOVERY_ENABLED: ${{ vars.LIGHTHOUSE_RECOVERY_ENABLED }}
|
|
90
96
|
LIGHTHOUSE_WORKER: apply-review
|
|
91
97
|
OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_DEFAULT_OTLP_ENDPOINT || vars.GH_AW_DEFAULT_OTLP_ENDPOINT }}
|
|
@@ -1232,6 +1238,11 @@ jobs:
|
|
|
1232
1238
|
contents: read
|
|
1233
1239
|
issues: write
|
|
1234
1240
|
pull-requests: write
|
|
1241
|
+
concurrency:
|
|
1242
|
+
cancel-in-progress: false
|
|
1243
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-prepare-{0}', github.run_id) }}
|
|
1244
|
+
queue: max
|
|
1245
|
+
|
|
1235
1246
|
env:
|
|
1236
1247
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
1237
1248
|
outputs:
|
|
@@ -1274,6 +1285,7 @@ jobs:
|
|
|
1274
1285
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
1275
1286
|
env:
|
|
1276
1287
|
GH_TOKEN: ${{ github.token }}
|
|
1288
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
1277
1289
|
|
|
1278
1290
|
publish:
|
|
1279
1291
|
name: Validate, publish and release
|
|
@@ -1288,6 +1300,11 @@ jobs:
|
|
|
1288
1300
|
contents: write
|
|
1289
1301
|
issues: write
|
|
1290
1302
|
pull-requests: write
|
|
1303
|
+
concurrency:
|
|
1304
|
+
cancel-in-progress: false
|
|
1305
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-publish-{0}', github.run_id) }}
|
|
1306
|
+
queue: max
|
|
1307
|
+
|
|
1291
1308
|
env:
|
|
1292
1309
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
1293
1310
|
steps:
|
|
@@ -1329,8 +1346,22 @@ jobs:
|
|
|
1329
1346
|
run: node src/packages/sdlc/src/issue-actions.mjs publish
|
|
1330
1347
|
env:
|
|
1331
1348
|
GH_TOKEN: ${{ github.token }}
|
|
1349
|
+
- name: Preserve the publication receipt
|
|
1350
|
+
if: always()
|
|
1351
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
1352
|
+
with:
|
|
1353
|
+
if-no-files-found: ignore
|
|
1354
|
+
name: lighthouse-implement-publication-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
1355
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/published-pr.json
|
|
1356
|
+
retention-days: ${{ vars.GH_AW_DEFAULT_ARTIFACT_RETENTION_DAYS || '14' }}
|
|
1332
1357
|
- name: Release the issue reservation
|
|
1333
1358
|
if: always()
|
|
1334
1359
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
1335
1360
|
env:
|
|
1336
1361
|
GH_TOKEN: ${{ github.token }}
|
|
1362
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
1363
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
1364
|
+
- name: Request the verified product prerequisite
|
|
1365
|
+
run: node src/packages/sdlc/src/issue-actions.mjs continue-product-gap
|
|
1366
|
+
env:
|
|
1367
|
+
GH_TOKEN: ${{ github.token }}
|
|
@@ -4,7 +4,7 @@ name: apply review
|
|
|
4
4
|
description: Apply authorized feedback to the existing proposal or implementation PR.
|
|
5
5
|
run-name: "apply-review #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
6
6
|
concurrency:
|
|
7
|
-
group: lighthouse-issue
|
|
7
|
+
group: ${{ inputs.epic-parent && format('lighthouse-epic-child-{0}', inputs.issue) || format('lighthouse-issue-{0}', inputs.issue) }}
|
|
8
8
|
cancel-in-progress: false
|
|
9
9
|
queue: max
|
|
10
10
|
job-discriminator: ${{ github.run_id }}
|
|
@@ -21,6 +21,10 @@ on:
|
|
|
21
21
|
description: Authenticated router receipt comment ID
|
|
22
22
|
required: true
|
|
23
23
|
type: string
|
|
24
|
+
epic-parent:
|
|
25
|
+
description: Authenticated parent issue for shared epic serialization
|
|
26
|
+
required: false
|
|
27
|
+
type: string
|
|
24
28
|
needs: [prepare]
|
|
25
29
|
if: needs.prepare.outputs.eligible == 'true'
|
|
26
30
|
runs-on: [self-hosted, linux, lighthouse-workflow]
|
|
@@ -28,6 +32,7 @@ runs-on-slim: ubuntu-24.04
|
|
|
28
32
|
timeout-minutes: 55
|
|
29
33
|
env:
|
|
30
34
|
LIGHTHOUSE_RECOVERY_ENABLED: ${{ vars.LIGHTHOUSE_RECOVERY_ENABLED }}
|
|
35
|
+
LIGHTHOUSE_EPIC_CAPACITY: ${{ vars.LIGHTHOUSE_EPIC_CAPACITY }}
|
|
31
36
|
LIGHTHOUSE_WORKER: apply-review
|
|
32
37
|
LIGHTHOUSE_DISPATCH_REQUIRED: "true"
|
|
33
38
|
permissions:
|
|
@@ -108,6 +113,10 @@ post-steps:
|
|
|
108
113
|
retention-days: 14
|
|
109
114
|
jobs:
|
|
110
115
|
prepare:
|
|
116
|
+
concurrency:
|
|
117
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-prepare-{0}', github.run_id) }}
|
|
118
|
+
cancel-in-progress: false
|
|
119
|
+
queue: max
|
|
111
120
|
outputs:
|
|
112
121
|
eligible: ${{ steps.prepare.outputs.eligible }}
|
|
113
122
|
source_revision: ${{ steps.prepare.outputs.source_revision }}
|
|
@@ -147,8 +156,13 @@ jobs:
|
|
|
147
156
|
if: failure()
|
|
148
157
|
env:
|
|
149
158
|
GH_TOKEN: ${{ github.token }}
|
|
159
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
150
160
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
151
161
|
publish:
|
|
162
|
+
concurrency:
|
|
163
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-publish-{0}', github.run_id) }}
|
|
164
|
+
cancel-in-progress: false
|
|
165
|
+
queue: max
|
|
152
166
|
name: Validate, publish and release
|
|
153
167
|
needs: [prepare, agent]
|
|
154
168
|
if: always() && needs.prepare.result == 'success' && needs.prepare.outputs.eligible == 'true'
|
|
@@ -190,11 +204,25 @@ jobs:
|
|
|
190
204
|
env:
|
|
191
205
|
GH_TOKEN: ${{ github.token }}
|
|
192
206
|
run: node src/packages/sdlc/src/issue-actions.mjs publish
|
|
207
|
+
- name: Preserve the publication receipt
|
|
208
|
+
if: always()
|
|
209
|
+
uses: actions/upload-artifact@v7
|
|
210
|
+
with:
|
|
211
|
+
name: lighthouse-implement-publication-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
212
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/published-pr.json
|
|
213
|
+
if-no-files-found: ignore
|
|
214
|
+
retention-days: 14
|
|
193
215
|
- name: Release the issue reservation
|
|
194
216
|
if: always()
|
|
195
217
|
env:
|
|
196
218
|
GH_TOKEN: ${{ github.token }}
|
|
219
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
220
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
197
221
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
222
|
+
- name: Request the verified product prerequisite
|
|
223
|
+
env:
|
|
224
|
+
GH_TOKEN: ${{ github.token }}
|
|
225
|
+
run: node src/packages/sdlc/src/issue-actions.mjs continue-product-gap
|
|
198
226
|
---
|
|
199
227
|
|
|
200
228
|
# Apply the owner feedback
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Not installed until child delivery and aggregate publication are connected.
|
|
2
|
+
name: Lighthouse epic reconciliation
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
issue:
|
|
7
|
+
description: Parent issue with an authenticated decomposition plan
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
action:
|
|
11
|
+
description: Reconcile children, register or review a child PR, or publish the aggregate
|
|
12
|
+
required: true
|
|
13
|
+
default: reconcile
|
|
14
|
+
type: choice
|
|
15
|
+
options: [reconcile, register-pr, ready-child, accept-child, publish-aggregate, ready-aggregate]
|
|
16
|
+
child:
|
|
17
|
+
description: Child issue number for PR registration or acceptance
|
|
18
|
+
required: false
|
|
19
|
+
type: string
|
|
20
|
+
run:
|
|
21
|
+
description: Child implementation run ID for PR registration
|
|
22
|
+
required: false
|
|
23
|
+
type: string
|
|
24
|
+
pull-request:
|
|
25
|
+
description: Child PR number for acceptance
|
|
26
|
+
required: false
|
|
27
|
+
type: string
|
|
28
|
+
review:
|
|
29
|
+
description: Owner approval review ID for acceptance
|
|
30
|
+
required: false
|
|
31
|
+
type: string
|
|
32
|
+
head:
|
|
33
|
+
description: Approved child PR head SHA
|
|
34
|
+
required: false
|
|
35
|
+
type: string
|
|
36
|
+
base:
|
|
37
|
+
description: Approved current epic branch SHA
|
|
38
|
+
required: false
|
|
39
|
+
type: string
|
|
40
|
+
concurrency:
|
|
41
|
+
group: lighthouse-issue-${{ inputs.issue }}
|
|
42
|
+
cancel-in-progress: false
|
|
43
|
+
queue: max
|
|
44
|
+
permissions:
|
|
45
|
+
contents: write
|
|
46
|
+
actions: read
|
|
47
|
+
issues: write
|
|
48
|
+
pull-requests: write
|
|
49
|
+
checks: read
|
|
50
|
+
statuses: read
|
|
51
|
+
jobs:
|
|
52
|
+
reconcile:
|
|
53
|
+
if: vars.LIGHTHOUSE_AUTOMATION_ENABLED == 'true' && vars.LIGHTHOUSE_EPIC_ENABLED == 'true' && github.actor == github.repository_owner
|
|
54
|
+
runs-on: ubuntu-24.04
|
|
55
|
+
env:
|
|
56
|
+
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/checkout@v5
|
|
59
|
+
with:
|
|
60
|
+
repository: juangcarmona/lighthouse
|
|
61
|
+
ref: __LIGHTHOUSE_REF__
|
|
62
|
+
persist-credentials: false
|
|
63
|
+
- uses: actions/setup-node@v5
|
|
64
|
+
with:
|
|
65
|
+
node-version: 24
|
|
66
|
+
- name: Install the pinned harness
|
|
67
|
+
run: npm ci --ignore-scripts
|
|
68
|
+
- name: Reconcile native child issues
|
|
69
|
+
env:
|
|
70
|
+
GH_TOKEN: ${{ github.token }}
|
|
71
|
+
run: node src/packages/sdlc/src/epic-native.mjs
|
|
72
|
+
- name: Preserve the epic journal
|
|
73
|
+
if: always()
|
|
74
|
+
uses: actions/upload-artifact@v7
|
|
75
|
+
with:
|
|
76
|
+
name: lighthouse-epic-journal-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
77
|
+
path: ${{ runner.temp }}/lighthouse-epic-${{ github.run_id }}-${{ inputs.issue }}/journal.json
|
|
78
|
+
if-no-files-found: error
|
|
79
|
+
retention-days: 14
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"
|
|
1
|
+
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"ff6e07d7f4c98ca08ec7640d649089b6061e48826d943401058a4403bd94dd0d","body_hash":"260db41beef59e0a150c7e0ed9fed84f0f724b5aeba94e5d2576d4b203a9d663","compiler_version":"v0.93.2","agent_id":"opencode","engine_versions":{"opencode":"2.1.0"},"agent_image_runner":"[\"self-hosted\",\"linux\",\"lighthouse-workflow\"]"}
|
|
2
2
|
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/checkout","sha":"fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09","version":"v5"},{"repo":"actions/download-artifact","sha":"9000827ccba6bdab643e8b6fd33ac0654aef8333","version":"v8.0.2"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"949feb2413d6458794dcd2491c4babbbce0c15c1","version":"v7.1.0"},{"repo":"actions/setup-node","sha":"a0853c24544627f65ddf259abe73b1d18a591444","version":"v5"},{"repo":"actions/upload-artifact","sha":"cf430e030ddbb5b0abf93d22962f4752f3646cd9","version":"v7.0.2"},{"repo":"github/gh-aw-actions/setup","sha":"d9128eb3ea40c18b77c76184eda03c0ff2608d79","version":"v0.93.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382","pinned_image":"ghcr.io/github/gh-aw-node@sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382"}],"mcp_servers":[{"name":"safeoutputs","tools":["noop"]}],"threat_detection":{"mode":"disabled"},"admission":false}
|
|
3
3
|
# This file was automatically generated by gh-aw (v0.93.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
|
|
4
4
|
#
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#
|
|
32
32
|
# Frontmatter env variables:
|
|
33
33
|
# - LIGHTHOUSE_DISPATCH_REQUIRED: (main workflow)
|
|
34
|
+
# - LIGHTHOUSE_EPIC_CAPACITY: (main workflow)
|
|
34
35
|
# - LIGHTHOUSE_RECOVERY_ENABLED: (main workflow)
|
|
35
36
|
# - LIGHTHOUSE_STAGE: (main workflow)
|
|
36
37
|
#
|
|
@@ -69,6 +70,10 @@ on:
|
|
|
69
70
|
description: Authenticated router receipt comment ID
|
|
70
71
|
required: true
|
|
71
72
|
type: string
|
|
73
|
+
epic-parent:
|
|
74
|
+
description: Authenticated parent issue for shared epic serialization
|
|
75
|
+
required: false
|
|
76
|
+
type: string
|
|
72
77
|
issue:
|
|
73
78
|
description: Source issue
|
|
74
79
|
required: true
|
|
@@ -79,13 +84,14 @@ permissions: {}
|
|
|
79
84
|
|
|
80
85
|
concurrency:
|
|
81
86
|
cancel-in-progress: false
|
|
82
|
-
group: lighthouse-issue
|
|
87
|
+
group: ${{ inputs.epic-parent && format('lighthouse-epic-child-{0}', inputs.issue) || format('lighthouse-issue-{0}', inputs.issue) }}
|
|
83
88
|
queue: max
|
|
84
89
|
|
|
85
90
|
run-name: "implement #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
86
91
|
|
|
87
92
|
env:
|
|
88
93
|
LIGHTHOUSE_DISPATCH_REQUIRED: "true"
|
|
94
|
+
LIGHTHOUSE_EPIC_CAPACITY: ${{ vars.LIGHTHOUSE_EPIC_CAPACITY }}
|
|
89
95
|
LIGHTHOUSE_RECOVERY_ENABLED: ${{ vars.LIGHTHOUSE_RECOVERY_ENABLED }}
|
|
90
96
|
LIGHTHOUSE_STAGE: implement
|
|
91
97
|
OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_DEFAULT_OTLP_ENDPOINT || vars.GH_AW_DEFAULT_OTLP_ENDPOINT }}
|
|
@@ -1231,6 +1237,12 @@ jobs:
|
|
|
1231
1237
|
actions: read
|
|
1232
1238
|
contents: read
|
|
1233
1239
|
issues: write
|
|
1240
|
+
pull-requests: read
|
|
1241
|
+
concurrency:
|
|
1242
|
+
cancel-in-progress: false
|
|
1243
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-prepare-{0}', github.run_id) }}
|
|
1244
|
+
queue: max
|
|
1245
|
+
|
|
1234
1246
|
env:
|
|
1235
1247
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
1236
1248
|
outputs:
|
|
@@ -1272,11 +1284,14 @@ jobs:
|
|
|
1272
1284
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
1273
1285
|
env:
|
|
1274
1286
|
GH_TOKEN: ${{ github.token }}
|
|
1287
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
1275
1288
|
|
|
1276
1289
|
publish:
|
|
1277
1290
|
name: Validate, publish and release
|
|
1278
1291
|
needs:
|
|
1292
|
+
- activation
|
|
1279
1293
|
- agent
|
|
1294
|
+
- pre_activation
|
|
1280
1295
|
- prepare
|
|
1281
1296
|
if: always() && needs.prepare.result == 'success' && needs.prepare.outputs.eligible == 'true'
|
|
1282
1297
|
runs-on: ubuntu-24.04
|
|
@@ -1286,6 +1301,11 @@ jobs:
|
|
|
1286
1301
|
contents: write
|
|
1287
1302
|
issues: write
|
|
1288
1303
|
pull-requests: write
|
|
1304
|
+
concurrency:
|
|
1305
|
+
cancel-in-progress: false
|
|
1306
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-publish-{0}', github.run_id) }}
|
|
1307
|
+
queue: max
|
|
1308
|
+
|
|
1289
1309
|
env:
|
|
1290
1310
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
1291
1311
|
steps:
|
|
@@ -1327,8 +1347,24 @@ jobs:
|
|
|
1327
1347
|
run: node src/packages/sdlc/src/issue-actions.mjs publish
|
|
1328
1348
|
env:
|
|
1329
1349
|
GH_TOKEN: ${{ github.token }}
|
|
1350
|
+
- name: Preserve the publication receipt
|
|
1351
|
+
if: always()
|
|
1352
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
1353
|
+
with:
|
|
1354
|
+
if-no-files-found: ignore
|
|
1355
|
+
name: lighthouse-implement-publication-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
1356
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/published-pr.json
|
|
1357
|
+
retention-days: ${{ vars.GH_AW_DEFAULT_ARTIFACT_RETENTION_DAYS || '14' }}
|
|
1330
1358
|
- name: Release the issue reservation
|
|
1331
1359
|
if: always()
|
|
1332
1360
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
1333
1361
|
env:
|
|
1334
1362
|
GH_TOKEN: ${{ github.token }}
|
|
1363
|
+
LIGHTHOUSE_ACTIVATION_RESULT: ${{ needs.activation.result }}
|
|
1364
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
1365
|
+
LIGHTHOUSE_PRE_ACTIVATION_RESULT: ${{ needs.pre_activation.result }}
|
|
1366
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
1367
|
+
- name: Request the verified product prerequisite
|
|
1368
|
+
run: node src/packages/sdlc/src/issue-actions.mjs continue-product-gap
|
|
1369
|
+
env:
|
|
1370
|
+
GH_TOKEN: ${{ github.token }}
|
|
@@ -4,7 +4,7 @@ name: implement
|
|
|
4
4
|
description: Plan and implement an authorized issue in an isolated workspace and deliver a reviewable PR.
|
|
5
5
|
run-name: "implement #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
6
6
|
concurrency:
|
|
7
|
-
group: lighthouse-issue
|
|
7
|
+
group: ${{ inputs.epic-parent && format('lighthouse-epic-child-{0}', inputs.issue) || format('lighthouse-issue-{0}', inputs.issue) }}
|
|
8
8
|
cancel-in-progress: false
|
|
9
9
|
queue: max
|
|
10
10
|
job-discriminator: ${{ github.run_id }}
|
|
@@ -21,6 +21,10 @@ on:
|
|
|
21
21
|
description: Authenticated router receipt comment ID
|
|
22
22
|
required: true
|
|
23
23
|
type: string
|
|
24
|
+
epic-parent:
|
|
25
|
+
description: Authenticated parent issue for shared epic serialization
|
|
26
|
+
required: false
|
|
27
|
+
type: string
|
|
24
28
|
needs: [prepare]
|
|
25
29
|
if: needs.prepare.outputs.eligible == 'true'
|
|
26
30
|
runs-on: [self-hosted, linux, lighthouse-workflow]
|
|
@@ -28,6 +32,7 @@ runs-on-slim: ubuntu-24.04
|
|
|
28
32
|
timeout-minutes: 55
|
|
29
33
|
env:
|
|
30
34
|
LIGHTHOUSE_RECOVERY_ENABLED: ${{ vars.LIGHTHOUSE_RECOVERY_ENABLED }}
|
|
35
|
+
LIGHTHOUSE_EPIC_CAPACITY: ${{ vars.LIGHTHOUSE_EPIC_CAPACITY }}
|
|
31
36
|
LIGHTHOUSE_STAGE: implement
|
|
32
37
|
LIGHTHOUSE_DISPATCH_REQUIRED: "true"
|
|
33
38
|
permissions:
|
|
@@ -108,6 +113,10 @@ post-steps:
|
|
|
108
113
|
retention-days: 14
|
|
109
114
|
jobs:
|
|
110
115
|
prepare:
|
|
116
|
+
concurrency:
|
|
117
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-prepare-{0}', github.run_id) }}
|
|
118
|
+
cancel-in-progress: false
|
|
119
|
+
queue: max
|
|
111
120
|
outputs:
|
|
112
121
|
eligible: ${{ steps.prepare.outputs.eligible }}
|
|
113
122
|
source_revision: ${{ steps.prepare.outputs.source_revision }}
|
|
@@ -117,6 +126,7 @@ jobs:
|
|
|
117
126
|
actions: read
|
|
118
127
|
contents: read
|
|
119
128
|
issues: write
|
|
129
|
+
pull-requests: read
|
|
120
130
|
env:
|
|
121
131
|
LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
|
|
122
132
|
steps:
|
|
@@ -145,10 +155,15 @@ jobs:
|
|
|
145
155
|
if: failure()
|
|
146
156
|
env:
|
|
147
157
|
GH_TOKEN: ${{ github.token }}
|
|
158
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
148
159
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
149
160
|
publish:
|
|
161
|
+
concurrency:
|
|
162
|
+
group: ${{ inputs.epic-parent && format('lighthouse-issue-{0}', inputs.epic-parent) || format('lighthouse-publish-{0}', github.run_id) }}
|
|
163
|
+
cancel-in-progress: false
|
|
164
|
+
queue: max
|
|
150
165
|
name: Validate, publish and release
|
|
151
|
-
needs: [prepare, agent]
|
|
166
|
+
needs: [prepare, pre_activation, activation, agent]
|
|
152
167
|
if: always() && needs.prepare.result == 'success' && needs.prepare.outputs.eligible == 'true'
|
|
153
168
|
runs-on: ubuntu-24.04
|
|
154
169
|
permissions:
|
|
@@ -188,11 +203,27 @@ jobs:
|
|
|
188
203
|
env:
|
|
189
204
|
GH_TOKEN: ${{ github.token }}
|
|
190
205
|
run: node src/packages/sdlc/src/issue-actions.mjs publish
|
|
206
|
+
- name: Preserve the publication receipt
|
|
207
|
+
if: always()
|
|
208
|
+
uses: actions/upload-artifact@v7
|
|
209
|
+
with:
|
|
210
|
+
name: lighthouse-implement-publication-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
211
|
+
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/published-pr.json
|
|
212
|
+
if-no-files-found: ignore
|
|
213
|
+
retention-days: 14
|
|
191
214
|
- name: Release the issue reservation
|
|
192
215
|
if: always()
|
|
193
216
|
env:
|
|
194
217
|
GH_TOKEN: ${{ github.token }}
|
|
218
|
+
LIGHTHOUSE_PRE_ACTIVATION_RESULT: ${{ needs.pre_activation.result }}
|
|
219
|
+
LIGHTHOUSE_ACTIVATION_RESULT: ${{ needs.activation.result }}
|
|
220
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
221
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
195
222
|
run: node src/packages/sdlc/src/issue-actions.mjs cleanup
|
|
223
|
+
- name: Request the verified product prerequisite
|
|
224
|
+
env:
|
|
225
|
+
GH_TOKEN: ${{ github.token }}
|
|
226
|
+
run: node src/packages/sdlc/src/issue-actions.mjs continue-product-gap
|
|
196
227
|
---
|
|
197
228
|
|
|
198
229
|
# Plan and implement the issue
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"
|
|
1
|
+
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"a16ef770ce94e692e43480d8f233a7739697a914dc73b618265e41059d7b5f2b","body_hash":"71107231af6c0ea2e2f2880e7bfcf90d02e031b1db4c95a2d5b456e934f6f1ed","compiler_version":"v0.93.2","agent_id":"opencode","engine_versions":{"opencode":"2.1.0"},"agent_image_runner":"[\"self-hosted\",\"linux\",\"lighthouse-workflow\"]"}
|
|
2
2
|
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/checkout","sha":"fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09","version":"v5"},{"repo":"actions/download-artifact","sha":"9000827ccba6bdab643e8b6fd33ac0654aef8333","version":"v8.0.2"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"949feb2413d6458794dcd2491c4babbbce0c15c1","version":"v7.1.0"},{"repo":"actions/setup-node","sha":"a0853c24544627f65ddf259abe73b1d18a591444","version":"v5"},{"repo":"actions/upload-artifact","sha":"cf430e030ddbb5b0abf93d22962f4752f3646cd9","version":"v7.0.2"},{"repo":"github/gh-aw-actions/setup","sha":"d9128eb3ea40c18b77c76184eda03c0ff2608d79","version":"v0.93.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382","pinned_image":"ghcr.io/github/gh-aw-node@sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382"}],"mcp_servers":[{"name":"safeoutputs","tools":["noop"]}],"threat_detection":{"mode":"disabled"},"admission":false}
|
|
3
3
|
# This file was automatically generated by gh-aw (v0.93.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
|
|
4
4
|
#
|
|
@@ -1264,6 +1264,7 @@ jobs:
|
|
|
1264
1264
|
run: node src/packages/sdlc/src/completion-actions.mjs cleanup
|
|
1265
1265
|
env:
|
|
1266
1266
|
GH_TOKEN: ${{ github.token }}
|
|
1267
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
1267
1268
|
|
|
1268
1269
|
publish:
|
|
1269
1270
|
name: Validate, publish and release
|
|
@@ -1339,3 +1340,5 @@ jobs:
|
|
|
1339
1340
|
run: node src/packages/sdlc/src/completion-actions.mjs cleanup
|
|
1340
1341
|
env:
|
|
1341
1342
|
GH_TOKEN: ${{ github.token }}
|
|
1343
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
1344
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
@@ -137,6 +137,7 @@ jobs:
|
|
|
137
137
|
if: failure()
|
|
138
138
|
env:
|
|
139
139
|
GH_TOKEN: ${{ github.token }}
|
|
140
|
+
LIGHTHOUSE_PREPARE_FAILED: "true"
|
|
140
141
|
run: node src/packages/sdlc/src/completion-actions.mjs cleanup
|
|
141
142
|
publish:
|
|
142
143
|
concurrency:
|
|
@@ -198,6 +199,8 @@ jobs:
|
|
|
198
199
|
if: always()
|
|
199
200
|
env:
|
|
200
201
|
GH_TOKEN: ${{ github.token }}
|
|
202
|
+
LIGHTHOUSE_AGENT_RESULT: ${{ needs.agent.result }}
|
|
203
|
+
LIGHTHOUSE_PUBLISH_STATUS: ${{ job.status }}
|
|
201
204
|
run: node src/packages/sdlc/src/completion-actions.mjs cleanup
|
|
202
205
|
---
|
|
203
206
|
|