|
27 | 27 | # In local dev, babelfhir-ts defaults to ~/.fhir/packages/ (shared with HL7 Validator). |
28 | 28 | env: |
29 | 29 | FHIR_CACHE_ROOT: .cache |
| 30 | + # @max-health-inc/config is installed from GitHub Packages (see .npmrc), which needs a |
| 31 | + # token even though the package is public. Set at workflow level so every `npm ci` in |
| 32 | + # every job below is covered, including the one that installs inside packages/zod. |
| 33 | + # Callers MUST pass `secrets: inherit` β a reusable workflow sees no secrets otherwise, |
| 34 | + # and an unset secret expands to an EMPTY string that fails with a 401 identical to a bad |
| 35 | + # token. Nothing here publishes, so a repo-wide NODE_AUTH_TOKEN is safe; the release |
| 36 | + # workflows scope theirs to the install step so it cannot reach `npm publish`. |
| 37 | + NODE_AUTH_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }} |
30 | 38 |
|
31 | 39 | jobs: |
32 | 40 | # ββ Resolve validator versions βββββββββββββββββββββββββββββββββββββββββββββ |
@@ -105,6 +113,9 @@ jobs: |
105 | 113 | internal: |
106 | 114 | needs: [setup] |
107 | 115 | runs-on: ubuntu-latest |
| 116 | + # Generates the packages the other two jobs reuse, so it is the longest of the |
| 117 | + # three; bounded for the same reason as hl7 below. |
| 118 | + timeout-minutes: 45 |
108 | 119 | permissions: |
109 | 120 | contents: read |
110 | 121 | strategy: |
@@ -231,6 +242,9 @@ jobs: |
231 | 242 | needs: [setup, internal, resolve-versions] |
232 | 243 | if: ${{ !cancelled() }} |
233 | 244 | runs-on: ubuntu-latest |
| 245 | + # Same exposure as hl7: an external validator subprocess that can stall on the |
| 246 | + # network with no output. |
| 247 | + timeout-minutes: 30 |
234 | 248 | permissions: |
235 | 249 | contents: read |
236 | 250 | strategy: |
@@ -360,6 +374,11 @@ jobs: |
360 | 374 | needs: [setup, internal, resolve-versions] |
361 | 375 | if: ${{ !cancelled() }} |
362 | 376 | runs-on: ubuntu-latest |
| 377 | + # The external validator runs as a subprocess with no output while it works, so |
| 378 | + # a network stall inside it reads as a live job. Without a bound it inherits |
| 379 | + # GitHub's 6-hour default: one hl7 (ips) job sat for 30+ minutes on nothing |
| 380 | + # before being cancelled by hand. A whole package takes single-digit minutes. |
| 381 | + timeout-minutes: 30 |
363 | 382 | permissions: |
364 | 383 | contents: read |
365 | 384 | strategy: |
|
0 commit comments