Wire up PHP 8.3 Linux matrix jobs and Justfile targets. Fix three EXPECTF
patterns in tests/002, 003, 008: PHP 8.3 changed the type-error message
wording from "bool given" to "false given", so widen "boo%s" to "%s" to
match both old and new phrasing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wire up PHP 8.2 Linux matrix jobs and Justfile targets. Update Windows CI
to PHP 8.2. Fix the __toString() methods on RarArchive and RarEntry to
declare IS_STRING return type under PHP_VERSION_ID >= 80200 — PHP 8.2
enforces that __toString() has a declared string return type and emits
warnings (breaking tests) without it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wire up PHP 8.1 Linux matrix jobs (debug + release-zts) via Docker image
SHA entries and Justfile targets. Update Windows CI job from PHP 8.0 to 8.1.
No C source changes required for 8.1 compatibility.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the old Azure Pipelines + Appveyor setup with GitHub Actions:
- Add .github/workflows/tests.yml with Linux (matrix) and Windows jobs
- Add .github/scripts/build-and-test.sh (shared build+test script)
- Add .github/scripts/update-docker-shas.sh (Docker image SHA lockfile updater)
- Add .github/docker-image-shas.yml (pinned OCI index digests for Linux jobs)
- Add Justfile for local test targets mirroring CI
- Add unrar_update.md documenting the unrar update process
- Remove azure-pipelines.yml, azure-template.yml, appveyor.yml, appveyor.bat,
test_funcs.sh