@norskvideo/ctl-dev-kit 0.2.85 → 0.2.87
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.
|
@@ -255,8 +255,11 @@ that way. Hand the suite a value by having both sides derive it (a tiny script
|
|
|
255
255
|
the hook runs and the test imports), not through `$GITHUB_ENV`.
|
|
256
256
|
|
|
257
257
|
`bun run test:integration` is the product's claim of what its tier is, and
|
|
258
|
-
|
|
259
|
-
and
|
|
258
|
+
two things believe it: the repo's nightly bump PR runs it on a new ctl pin and
|
|
259
|
+
merges only when it is green, and ctl's release gate sends a `ctl-candidate`
|
|
260
|
+
dispatch that runs this workflow and shows the result on the CI board. The
|
|
261
|
+
gate is advisory — the result does not hold ctl's `latest` — so the bump PR
|
|
262
|
+
is what keeps a ctl that breaks this product out of it.
|
|
260
263
|
|
|
261
264
|
**Converging a repo.** The gate only takes over a copy whose first line is the
|
|
262
265
|
canonical's marker (`# ctl-dev-kit convention: integration`); a copy without it
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
# What the tier is: the product's slow suite (daemon + Docker + licence) run
|
|
13
13
|
# against the RELEASED norsk-ctl binary, exactly as a customer would run it — a
|
|
14
14
|
# split product repo has no ctl source. `bun run test:integration` is the
|
|
15
|
-
# product's claim of what that suite is, and
|
|
16
|
-
#
|
|
17
|
-
#
|
|
15
|
+
# product's claim of what that suite is, and two things believe it: this
|
|
16
|
+
# repo's nightly bump PR, which runs it on a new ctl pin and merges only when
|
|
17
|
+
# green, and ctl's (advisory) release gate, whose ctl-candidate dispatch runs it
|
|
18
|
+
# and shows the result on the CI board.
|
|
18
19
|
#
|
|
19
20
|
# Per-repo variation lives in three optional hooks, not in this file:
|
|
20
21
|
# scripts/integration/prepull-extra.sh extra images the suite launches (a
|
|
@@ -57,7 +58,7 @@ on:
|
|
|
57
58
|
workflow_dispatch:
|
|
58
59
|
inputs:
|
|
59
60
|
ctl_channel:
|
|
60
|
-
description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to
|
|
61
|
+
description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to report on a candidate (advisory: latest is not held on it)."
|
|
61
62
|
type: string
|
|
62
63
|
default: ""
|
|
63
64
|
|
|
@@ -66,7 +67,8 @@ permissions:
|
|
|
66
67
|
|
|
67
68
|
# A ctl-candidate validation must not be cancellable out of a result, because
|
|
68
69
|
# release-collect scores anything other than a literal success as red — a
|
|
69
|
-
# CANCELLED run included
|
|
70
|
+
# CANCELLED run included. (Until the gate went advisory on 2026-10-17 it also
|
|
71
|
+
# answered a red with one re-dispatch, which is what made this bite.)
|
|
70
72
|
#
|
|
71
73
|
# Keying on event_name alone was not enough: every candidate is the SAME event,
|
|
72
74
|
# so they shared a group and cancelled each other, and the re-dispatch cancelled
|
|
@@ -583,8 +585,9 @@ jobs:
|
|
|
583
585
|
fi
|
|
584
586
|
|
|
585
587
|
# Report the rc-candidate validation result to the norsk-ctl release gate. Only
|
|
586
|
-
# on a ctl-candidate dispatch; release-collect
|
|
587
|
-
# latest
|
|
588
|
+
# on a ctl-candidate dispatch; release-collect records it for the CI board.
|
|
589
|
+
# Advisory: ctl promotes latest without waiting on it, and this repo takes a
|
|
590
|
+
# new ctl only through its bump PR, which runs this tier on the new pin.
|
|
588
591
|
report-candidate:
|
|
589
592
|
needs: integration
|
|
590
593
|
if: ${{ always() && github.event_name == 'repository_dispatch' && github.event.action == 'ctl-candidate' }}
|
|
@@ -602,7 +605,8 @@ jobs:
|
|
|
602
605
|
set -euo pipefail
|
|
603
606
|
state=failure; [ "$RESULT" = "success" ] && state=success
|
|
604
607
|
# `tier: integration`, named rather than defaulted: the release gate
|
|
605
|
-
# tallies per tier, and this is the one that
|
|
608
|
+
# tallies per tier, and this is the one that launches instances
|
|
609
|
+
# (docs/release-gate.md).
|
|
606
610
|
body="$(jq -nc --arg p "$product" --arg v "$VERSION" --arg r "$state" \
|
|
607
611
|
'{event_type:"ctl-candidate-result",client_payload:{product:$p,version:$v,result:$r,tier:"integration"}}')"
|
|
608
612
|
code="$(curl -sS -o /dev/null -w '%{http_code}' -X POST \
|
package/conventions/smoke.yml
CHANGED
|
@@ -30,7 +30,7 @@ on:
|
|
|
30
30
|
workflow_dispatch:
|
|
31
31
|
inputs:
|
|
32
32
|
ctl_channel:
|
|
33
|
-
description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to
|
|
33
|
+
description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to report on a candidate (advisory: latest is not held on it)."
|
|
34
34
|
type: string
|
|
35
35
|
default: ""
|
|
36
36
|
|
|
@@ -503,8 +503,9 @@ jobs:
|
|
|
503
503
|
fi
|
|
504
504
|
|
|
505
505
|
# Report the rc-candidate validation result to the norsk-ctl release gate. Only
|
|
506
|
-
# on a ctl-candidate dispatch; release-collect
|
|
507
|
-
# latest
|
|
506
|
+
# on a ctl-candidate dispatch; release-collect records it for the CI board.
|
|
507
|
+
# Advisory: ctl promotes latest without waiting on it, and this repo takes a
|
|
508
|
+
# new ctl only through its bump PR, which runs this tier on the new pin.
|
|
508
509
|
report-candidate:
|
|
509
510
|
needs: smoke
|
|
510
511
|
if: ${{ always() && github.event_name == 'repository_dispatch' && github.event.action == 'ctl-candidate' }}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@norskvideo/ctl-dev-kit",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.87",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./create-product": "./create-product/create-product.ts",
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@norskvideo/ctl-oas-to-ts": "^0.1.0",
|
|
42
|
-
"@norskvideo/norsk-sdk": "1.3.1-2026-10-
|
|
43
|
-
"@norskvideo/norsk-studio": "1.30.0-2026-10-
|
|
44
|
-
"@norskvideo/norsk-studio-builder": "1.30.0-2026-10-
|
|
45
|
-
"@norskvideo/norsk-studio-built-ins": "1.30.0-2026-10-
|
|
42
|
+
"@norskvideo/norsk-sdk": "1.3.1-2026-10-16-e43e0f90",
|
|
43
|
+
"@norskvideo/norsk-studio": "1.30.0-2026-10-16-837e5d98",
|
|
44
|
+
"@norskvideo/norsk-studio-builder": "1.30.0-2026-10-16-837e5d98",
|
|
45
|
+
"@norskvideo/norsk-studio-built-ins": "1.30.0-2026-10-16-837e5d98",
|
|
46
46
|
"@playwright/test": "^1.59.0",
|
|
47
47
|
"@testing-library/jest-dom": "^6.9.1",
|
|
48
48
|
"@testing-library/react": "^16.3.2",
|