Skip to content

ci: run strict content patch v4 #13

ci: run strict content patch v4

ci: run strict content patch v4 #13

name: Apply strict content promotion fix
on:
push:
branches:
- fix/strict-content-promotion-gate
permissions:
contents: write
concurrency:
group: strict-content-promotion-fix
cancel-in-progress: false
jobs:
patch-test-commit:
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ref: fix/strict-content-promotion-gate
fetch-depth: 0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
with:
python-version: '3.12'
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
with:
node-version: '24'
package-manager-cache: false
- name: Install dependencies
run: npm ci --ignore-scripts --no-audit --no-fund
- name: Apply strict identity and duration gate
run: |
python scripts/tmp_apply_strict_content_fix_v4.py
rm scripts/tmp_apply_strict_content_fix.py
rm scripts/tmp_apply_strict_content_fix_v2.py
rm scripts/tmp_apply_strict_content_fix_v3.py
rm scripts/tmp_apply_strict_content_fix_v4.py
rm .github/workflows/tmp-apply-strict-content-promotion-fix.yml
- name: Syntax and targeted regressions
run: |
node --check scripts/nuvio_tv_probe_v2.cjs
node --check scripts/nuvio_client_lab.cjs
python -m py_compile \
scripts/promote_global_nuvio_tv_candidates.py \
scripts/promote_target_media_v3.py \
scripts/publish_nuvio_tv_compat_v2.py \
scripts/publish_desktop_runtime_compat.py \
scripts/audit_catalogue_identity_media.py \
tests/media_duration_identity_test.py
node tests/nuvio_client_lab.test.cjs
python tests/media_duration_identity_test.py
python tests/repair_identity_gate_test.py
python tests/desktop_runtime_compat_test.py
python - <<'PY'
from pathlib import Path
publishers = [
'scripts/promote_global_nuvio_tv_candidates.py',
'scripts/promote_target_media_v3.py',
'scripts/publish_nuvio_tv_compat_v2.py',
'scripts/publish_desktop_runtime_compat.py',
]
for path in publishers:
text = Path(path).read_text(encoding='utf-8')
assert 'row["enabled"] = True' not in text, path
assert '"activation_eligible": True' not in text, path
assert '"runtime_evidence_eligible": True' not in text, path
print('publisher activation preservation tests passed')
PY
- name: Full repository regression and integrity
run: |
python scripts/generate_release_hashes.py
npm test --ignore-scripts
python scripts/validate_release_integrity.py
python scripts/validate_activation_preservation.py
python scripts/validate_language_projection.py
- name: Commit tested fix
run: |
git config user.name 'niakvio-ci'
git config user.email 'actions@users.noreply.github.com'
git add -A
git status --short
git commit -m 'fix: enforce strict content proof before provider promotion'
git push origin HEAD:fix/strict-content-promotion-gate