mirror of https://github.com/Free-TV/IPTV
check_channels.py's exit code reflects every dead channel across the whole list file it was pointed at, not just the ones a PR added or changed. Since pr_check.yml ran the checker directly and let its exit code decide the job's pass/fail, any PR touching a list that already had pre-existing dead entries (which is most of them - dozens of already-known-broken channels exist across these lists) got a red X for something it never caused, even though the workflow's own summary step already computed the right "touched vs already broken" split. Fixes this by: - letting the check step run to completion regardless of its exit code (the checker's own verdict on the whole file isn't this job's call to make) - moving pass/fail into the summarize step, which already has the touched/others split: the job now fails only when a channel this PR itself added or changed comes back `dead` - deliberately not failing on `blocked`/`unreachable`/`flaky` for touched channels either - these have real false-positive rates from the runner's own network (geo-blocks, a datacenter IP some providers reject, one slow probe), which is exactly why the *Channel check (deep)* workflow exists to give `dead`-looking channels a second opinion before anyone acts on them Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Enus8N247jHM5r5Som5JuU |
||
|---|---|---|
| .. | ||
| check_channels_deep.yml | ||
| check_channels_fast.yml | ||
| pr_check.yml | ||
| pylint.yml | ||
| test_playlist.yml | ||
| update_playlist.yml | ||
| weekly_trend.yml | ||