ci: fix v4 patch chaining #12
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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_v3.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 .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 |