@metasession.co/devaudit-cli 0.3.27 → 0.3.29

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.
@@ -22,6 +22,10 @@ on:
22
22
  pull_request:
23
23
  branches: [main]
24
24
  workflow_dispatch:
25
+ inputs:
26
+ runner_label:
27
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
28
+ required: false
25
29
  repository_dispatch:
26
30
  types: [release-approved]
27
31
 
@@ -15,6 +15,10 @@ name: CI Pipeline
15
15
 
16
16
  on:
17
17
  workflow_dispatch:
18
+ inputs:
19
+ runner_label:
20
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
21
+ required: false
18
22
  pull_request:
19
23
  branches: [{{INTEGRATION_BRANCH}}]
20
24
  push:
@@ -178,7 +182,9 @@ jobs:
178
182
  {{E2E_DEV_SERVER_STEP}}
179
183
 
180
184
  - name: Wait for dev server
181
- run: npx wait-on http://localhost:3000 --timeout 120000
185
+ # The inner wait-on timeout is diagnostic; the outer deadline keeps a
186
+ # hung child from consuming the entire quality-gates job budget.
187
+ run: timeout --signal=TERM --kill-after=15s 150s npx wait-on http://localhost:3000 --timeout 120000
182
188
 
183
189
  # Compute the set of e2e spec files added on this branch (relative
184
190
  # to the merge base). The evidenceShot helper in the consumer's
@@ -352,8 +358,10 @@ jobs:
352
358
  fi
353
359
  chmod +x scripts/standalone-housekeeping-release.sh scripts/upload-evidence.sh 2>/dev/null || true
354
360
  bash scripts/standalone-housekeeping-release.sh validate "$VERSION" "$DECLARATION"
361
+ # A bare-date version identifies the release, not a requirement. Use
362
+ # the portal's common evidence scope while preserving release ownership.
355
363
  bash scripts/upload-evidence.sh \
356
- {{PROJECT_SLUG}} "$VERSION" release_ticket "$DECLARATION" \
364
+ {{PROJECT_SLUG}} _compliance-docs release_ticket "$DECLARATION" \
357
365
  --release "$VERSION" --create-release-if-missing \
358
366
  --environment uat --category release_artifact --sdlc-stage 2 \
359
367
  --git-sha ${{ github.sha }} --branch ${{ github.ref_name }}
@@ -28,6 +28,9 @@ on:
28
28
  release_pr:
29
29
  description: 'Release PR number or URL to backlink (optional)'
30
30
  required: false
31
+ runner_label:
32
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
33
+ required: false
31
34
  repository_dispatch:
32
35
  types: [release-closed]
33
36
 
@@ -21,6 +21,10 @@ name: Compliance Evidence Upload
21
21
 
22
22
  on:
23
23
  workflow_dispatch:
24
+ inputs:
25
+ runner_label:
26
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
27
+ required: false
24
28
  push:
25
29
  branches: [develop]
26
30
  paths:
@@ -443,16 +447,15 @@ jobs:
443
447
  DERIVED_RELEASE="${REQS[0]}"
444
448
  fi
445
449
 
446
- if [ "$PRIOR_EVENT" = "deployment_status" ] && [ "${#REQS[@]}" -eq 0 ]; then
447
- echo "::error::Deployment-origin E2E evidence requires tagged or in-scope REQ attribution; refusing _compliance-docs fallback."
448
- exit 1
449
- fi
450
-
451
450
  if [ "${#REQS[@]}" -eq 0 ]; then
452
451
  if echo "$DERIVED_RELEASE" | grep -qE '^v[0-9]{4}\.[0-9]{2}\.[0-9]{2}([.][0-9]+)?$'; then
453
452
  echo "No tracked REQ was executed for standalone/integration housekeeping ${DERIVED_RELEASE}; preserving this as GitHub historical CI without portal approval evidence."
454
453
  exit 0
455
454
  fi
455
+ if [ "$PRIOR_EVENT" = "deployment_status" ]; then
456
+ echo "::error::Deployment-origin E2E evidence requires tagged or in-scope REQ attribution; refusing _compliance-docs fallback."
457
+ exit 1
458
+ fi
456
459
  REQS=(_compliance-docs)
457
460
  fi
458
461
  # A bounded Playwright process exits the workflow with `failure`
@@ -61,7 +61,7 @@ jobs:
61
61
  - uses: actions/checkout@v6
62
62
  with:
63
63
  fetch-depth: 0
64
- - uses: actions/setup-node@v4
64
+ - uses: actions/setup-node@v6
65
65
  with:
66
66
  node-version: {{NODE_VERSION}}
67
67
  - name: Install dependencies (skip if lockfile unchanged)
@@ -84,7 +84,8 @@ jobs:
84
84
  {{E2E_DEV_SERVER_STEP}}
85
85
 
86
86
  - name: Wait for dev server
87
- run: npx wait-on http://localhost:3000 --timeout 120000
87
+ # Keep a process-level bound in addition to wait-on's internal timer.
88
+ run: timeout --signal=TERM --kill-after=15s 150s npx wait-on http://localhost:3000 --timeout 120000
88
89
 
89
90
  # Compute the set of e2e spec files added on this branch (relative
90
91
  # to the merge base). The evidenceShot helper reads E2E_NEW_SPECS
@@ -29,6 +29,9 @@ on:
29
29
  release:
30
30
  description: 'Optional REQ-XXX / version to promote (blank = all in-scope from pending release tickets).'
31
31
  required: false
32
+ runner_label:
33
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
34
+ required: false
32
35
  deployment_status:
33
36
  types: [created]
34
37
 
@@ -14,6 +14,10 @@ name: CI Pipeline
14
14
 
15
15
  on:
16
16
  workflow_dispatch:
17
+ inputs:
18
+ runner_label:
19
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
20
+ required: false
17
21
  pull_request:
18
22
  branches: [{{INTEGRATION_BRANCH}}]
19
23
  push:
@@ -311,11 +315,10 @@ jobs:
311
315
  name: Upload Evidence
312
316
  runs-on: {{RUNNER}}
313
317
  needs: [quality-gates, register-release]
314
- # `always()` instead of `!failure()` so failed gates still upload their
315
- # evidence `status=failed` is itself the audit trail. `!cancelled()`
316
- # still guards against partial state on operator-cancel.
317
- # DevAudit-Installer#96.
318
- if: ${{ always() && !cancelled() && github.ref_name == '{{INTEGRATION_BRANCH}}' && needs.register-release.result == 'success' }}
318
+ # Pull requests do not register or upload release evidence. Keeping this
319
+ # intentionally inapplicable job out of `always()` avoids a cancelled
320
+ # aggregate workflow when Register Release is correctly skipped (#500).
321
+ if: ${{ !cancelled() && github.event_name != 'pull_request' && github.ref_name == '{{INTEGRATION_BRANCH}}' && needs.register-release.result == 'success' }}
319
322
  env:
320
323
  DEVAUDIT_BASE_URL_VAR: ${{ vars.DEVAUDIT_BASE_URL }}
321
324
  DEVAUDIT_API_KEY: ${{ secrets.DEVAUDIT_API_KEY }}
@@ -24,6 +24,9 @@ on:
24
24
  health_url:
25
25
  description: 'Configured production health URL'
26
26
  required: true
27
+ runner_label:
28
+ description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
29
+ required: false
27
30
 
28
31
  jobs:
29
32
  reconcile:
package/sdlc/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metasession.co/devaudit-sdlc",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "description": "DevAudit SDLC CLI Engine — cross-agent terminal-driven SDLC orchestrator.",
5
5
  "bin": {
6
6
  "devaudit-sdlc": "./src/bin/devaudit-sdlc.js"