@norskvideo/ctl-dev-kit 0.1.20 → 0.1.21

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.
@@ -29,7 +29,13 @@ jobs:
29
29
  drift:
30
30
  runs-on: x64
31
31
  steps:
32
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
33
+ # bind-mount dirs under test-temp/ that a non-root git clean can't remove
34
+ # (EACCES). These jobs never need those files; skip the clean so an innocent
35
+ # bystander checkout doesn't choke on another workflow's leftovers.
32
36
  - uses: actions/checkout@v5
37
+ with:
38
+ clean: false
33
39
  - name: Shared-conventions drift-check (Workstream I)
34
40
  run: |
35
41
  nix develop .#build --command bash -c '
@@ -41,7 +47,13 @@ jobs:
41
47
  quality:
42
48
  runs-on: x64
43
49
  steps:
50
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
51
+ # bind-mount dirs under test-temp/ that a non-root git clean can't remove
52
+ # (EACCES). These jobs never need those files; skip the clean so an innocent
53
+ # bystander checkout doesn't choke on another workflow's leftovers.
44
54
  - uses: actions/checkout@v5
55
+ with:
56
+ clean: false
45
57
  - name: Lint + typecheck + unit tests
46
58
  run: |
47
59
  nix develop .#build --command bash -c '
@@ -63,7 +75,13 @@ jobs:
63
75
  if: ${{ !cancelled() && github.event_name == 'push' }}
64
76
  runs-on: x64
65
77
  steps:
78
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
79
+ # bind-mount dirs under test-temp/ that a non-root git clean can't remove
80
+ # (EACCES). These jobs never need those files; skip the clean so an innocent
81
+ # bystander checkout doesn't choke on another workflow's leftovers.
66
82
  - uses: actions/checkout@v5
83
+ with:
84
+ clean: false
67
85
  - id: meta
68
86
  run: |
69
87
  if [ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" = "true" ]; then
@@ -43,7 +43,21 @@ jobs:
43
43
  sync:
44
44
  runs-on: x64
45
45
  steps:
46
+ # Check out with CI_DISPATCH_TOKEN, not the automatic GITHUB_TOKEN: this job
47
+ # pushes re-synced copies, and the dev-kit single-sources the shared
48
+ # .github/workflows/ files -- so a sync can rewrite a workflow file, and
49
+ # GITHUB_TOKEN is categorically barred from pushing under .github/workflows/
50
+ # (no permissions: key unlocks it). CI_DISPATCH_TOKEN carries the fine-grained
51
+ # Workflows:write permission, so its push is allowed. The checkout credential
52
+ # is what both the green push:main and the red branch push authenticate with.
53
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
54
+ # bind-mount dirs under test-temp/ a non-root git clean can't remove
55
+ # (EACCES); this job never needs them. `git add -A` below still ignores
56
+ # them (test-temp is gitignored), so the sync commit stays clean.
46
57
  - uses: actions/checkout@v5
58
+ with:
59
+ token: ${{ secrets.CI_DISPATCH_TOKEN }}
60
+ clean: false
47
61
 
48
62
  - name: Resolve the newest published dev-kit and bump the pin
49
63
  id: sync
@@ -108,9 +122,11 @@ jobs:
108
122
  forced copies re-synced from the new canonical (sync-drift); check:drift +
109
123
  lint + typecheck + unit tests green against the new bytes. Lockfile
110
124
  regenerated."
111
- # A GITHUB_TOKEN push does not retrigger checks (Actions' recursion
112
- # guard) -- fine, the gate above already ran them. Rebase-and-retry so a
113
- # commit landing mid-run does not red the sync; a real conflict aborts.
125
+ # This pushes with CI_DISPATCH_TOKEN (a PAT), so unlike a GITHUB_TOKEN
126
+ # push it DOES retrigger downstream checks -- intended: the landed sync
127
+ # should exercise the product's build workflows once (sync-dev-kit itself
128
+ # is schedule/dispatch-only, so no loop). Rebase-and-retry so a commit
129
+ # landing mid-run does not red the sync; a real conflict aborts.
114
130
  for attempt in 1 2 3 4 5; do
115
131
  if git push origin HEAD:main; then exit 0; fi
116
132
  echo "push rejected (attempt $attempt) - rebasing onto latest origin/main"
@@ -166,7 +182,11 @@ jobs:
166
182
  if: ${{ !cancelled() }}
167
183
  runs-on: x64
168
184
  steps:
185
+ # clean: false -- see the sync job; avoid a git-clean EACCES on integration's
186
+ # root-owned test-temp leftovers on the shared x64 pool.
169
187
  - uses: actions/checkout@v5
188
+ with:
189
+ clean: false
170
190
  - id: meta
171
191
  run: |
172
192
  if [ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" = "true" ]; then
@@ -37,7 +37,13 @@ jobs:
37
37
  changed: ${{ steps.bump.outputs.changed }}
38
38
  summary: ${{ steps.bump.outputs.summary }}
39
39
  steps:
40
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
41
+ # bind-mount dirs under test-temp/ that a non-root git clean can't remove
42
+ # (EACCES). These jobs never need those files; skip the clean so an innocent
43
+ # bystander checkout doesn't choke on another workflow's leftovers.
40
44
  - uses: actions/checkout@v5
45
+ with:
46
+ clean: false
41
47
 
42
48
  - name: Resolve the nightly channel and rewrite the coupled pins
43
49
  id: bump
@@ -200,7 +206,13 @@ jobs:
200
206
  if: ${{ !cancelled() }}
201
207
  runs-on: x64
202
208
  steps:
209
+ # clean: false -- the integration suite (shared x64 pool) leaves root-owned
210
+ # bind-mount dirs under test-temp/ that a non-root git clean can't remove
211
+ # (EACCES). These jobs never need those files; skip the clean so an innocent
212
+ # bystander checkout doesn't choke on another workflow's leftovers.
203
213
  - uses: actions/checkout@v5
214
+ with:
215
+ clean: false
204
216
  - id: meta
205
217
  run: |
206
218
  if [ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" = "true" ]; then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-dev-kit",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",