Files
tvbox-json-monitor/.github/workflows/ci.yml
T
dependabot[bot] 2ad4810500 deps(deps): bump actions/checkout (#1)
Bumps the github-actions group with 1 update in the / directory: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-14 05:01:39 +00:00

92 lines
2.4 KiB
YAML

name: CI
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Validate generated JSON
run: |
python3 -m json.tool data/tvbox.json > /dev/null
python3 -m json.tool data/tvbox.meta.json > /dev/null
- name: Test extractor success path
run: |
temp_dir="$(mktemp -d)"
trap 'rm -rf "${temp_dir}"' EXIT
payload_path="${temp_dir}/payload.bin"
PAYLOAD_PATH="${payload_path}" python3 - <<'PY'
import base64
import os
decoded_json = b'{"sites":[{"key":"demo"}]}'
payload = (
b"\xff\xd8\xff\xd9"
+ b"prefix**"
+ base64.b64encode(decoded_json)
)
with open(os.environ["PAYLOAD_PATH"], "wb") as payload_file:
payload_file.write(payload)
PY
payload_url="$(python3 - "${payload_path}" <<'PY'
import sys
from pathlib import Path
print(Path(sys.argv[1]).resolve().as_uri())
PY
)"
TVBOX_URL="${payload_url}" \
OUT_JSON="${temp_dir}/tvbox.json" \
OUT_META="${temp_dir}/tvbox.meta.json" \
python3 scripts/extract_tvbox.py > /dev/null
python3 -m json.tool "${temp_dir}/tvbox.json" > /dev/null
python3 -m json.tool "${temp_dir}/tvbox.meta.json" > /dev/null
- name: Test extractor upstream error path
run: |
temp_dir="$(mktemp -d)"
trap 'rm -rf "${temp_dir}"' EXIT
bad_payload_path="${temp_dir}/bad-payload.bin"
printf 'not-a-tvbox-payload' > "${bad_payload_path}"
bad_payload_url="$(python3 - "${bad_payload_path}" <<'PY'
import sys
from pathlib import Path
print(Path(sys.argv[1]).resolve().as_uri())
PY
)"
set +e
TVBOX_URL="${bad_payload_url}" \
OUT_JSON="${temp_dir}/tvbox.json" \
OUT_META="${temp_dir}/tvbox.meta.json" \
python3 scripts/extract_tvbox.py > /dev/null 2>&1
status="$?"
set -e
if [ "${status}" -ne 75 ]; then
echo "Expected upstream error exit code 75, got ${status}."
exit 1
fi