gate guard, runtime spec, Node 24 actions
This commit is contained in:
23
.github/workflows/ci.yml
vendored
23
.github/workflows/ci.yml
vendored
@@ -14,6 +14,11 @@
|
|||||||
|
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
|
# Action versions are the Node 24 native releases (checkout@v5, setup-node@v5,
|
||||||
|
# setup-python@v6). The v4/v5 generation targets Node 20, which the runners now
|
||||||
|
# force onto Node 24 with a deprecation warning on every job - working today,
|
||||||
|
# a hard failure whenever GitHub drops the shim.
|
||||||
|
#
|
||||||
# Jobs run on the org's self-hosted "arc-runner-set" (enterprise
|
# Jobs run on the org's self-hosted "arc-runner-set" (enterprise
|
||||||
# ge-aerospace-runner-group, Linux). GitHub-hosted runners are blocked by the
|
# ge-aerospace-runner-group, Linux). GitHub-hosted runners are blocked by the
|
||||||
# org IP allow list (hosted Azure runner IPs are not allow-listed -> checkout
|
# org IP allow list (hosted Azure runner IPs are not allow-listed -> checkout
|
||||||
@@ -34,8 +39,8 @@ jobs:
|
|||||||
backend:
|
backend:
|
||||||
runs-on: arc-runner-set
|
runs-on: arc-runner-set
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: '3.14'
|
python-version: '3.14'
|
||||||
cache: pip
|
cache: pip
|
||||||
@@ -45,7 +50,7 @@ jobs:
|
|||||||
naming:
|
naming:
|
||||||
runs-on: arc-runner-set
|
runs-on: arc-runner-set
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- run: bash scripts/check-naming-and-style.sh
|
- run: bash scripts/check-naming-and-style.sh
|
||||||
|
|
||||||
gates:
|
gates:
|
||||||
@@ -58,8 +63,8 @@ jobs:
|
|||||||
# it again.
|
# it again.
|
||||||
runs-on: arc-runner-set
|
runs-on: arc-runner-set
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: '3.14'
|
python-version: '3.14'
|
||||||
cache: pip
|
cache: pip
|
||||||
@@ -72,8 +77,8 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: frontend
|
working-directory: frontend
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v5
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '20'
|
||||||
cache: npm
|
cache: npm
|
||||||
@@ -88,8 +93,8 @@ jobs:
|
|||||||
# code is absent from the bundle - the delete-a-plugin guarantee in CI.
|
# code is absent from the bundle - the delete-a-plugin guarantee in CI.
|
||||||
runs-on: arc-runner-set
|
runs-on: arc-runner-set
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v5
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '20'
|
||||||
cache: npm
|
cache: npm
|
||||||
|
|||||||
19
CHANGELOG.md
19
CHANGELOG.md
@@ -128,6 +128,25 @@ ADR-007 and ADR-002.
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- **The published site's API documentation page had no spec to show.**
|
||||||
|
`shopdb/core/api/docs.py` reads `docs/openapi.json` at runtime to serve
|
||||||
|
`/api/docs`, and publication excluded the whole of `docs/` because the prose
|
||||||
|
becomes the wiki. So every site installed from the published repo shipped the
|
||||||
|
ReDoc page, loaded it, and answered `{"error":"openapi.json not generated"}`.
|
||||||
|
The spec now publishes: it is a product file that happens to live under
|
||||||
|
`docs/`, not documentation. The prose still goes to the wiki and nowhere else.
|
||||||
|
|
||||||
|
- **Three gates were reporting green by not running.**
|
||||||
|
`test_api_inventory_parity`, `test_openapi_spec` and `test_docs_publishable`
|
||||||
|
all skip themselves when the file they read is absent - correct in a
|
||||||
|
published checkout, and silently wrong on GitHub, which runs against exactly
|
||||||
|
that checkout. An outside branch added nine routes documented nowhere and
|
||||||
|
passed CI. `scripts/check-gates-ran.sh` now asserts each gate actually ran,
|
||||||
|
splitting the ones that must run everywhere from the ones that need files
|
||||||
|
publication deliberately leaves behind, and a new `gates` job runs it in CI.
|
||||||
|
Verified in both directions: it passes here, and it fails when the file a
|
||||||
|
gate reads is taken away.
|
||||||
|
|
||||||
- **Secure Send now hands you a message, not a bare URL.** A link on its own
|
- **Secure Send now hands you a message, not a bare URL.** A link on its own
|
||||||
invites being pasted onto text already sitting in the chat box, and a chat
|
invites being pasted onto text already sitting in the chat box, and a chat
|
||||||
client turns the selection into the link's caption - so the secret travels as
|
client turns the selection into the link's caption - so the secret travels as
|
||||||
|
|||||||
Reference in New Issue
Block a user