Repository navigation
ci: verify the SQLite JDBC download before installing it into Lucee - #4594
Conversation
The PR, snapshot and shared test-env setup steps fetched sqlite-jdbc with `curl -sL`, which exits 0 on an HTTP error page or a truncated transfer. A damaged jar then failed much later: Tomcat logged "zip END header not found" and the core suite errored with org.sqlite.JDBC not found. All three now run tools/ci/fetch-sqlite-jdbc.sh. It downloads with `curl --fail` and retries, checks the jar against Maven Central's published SHA-256, downloads again on a mismatch (three attempts), and otherwise fails the step with the URL, the hash and the size it got. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
|
rev1-r3 review @ 0c1d652: CHANGES (one CI failure caused by this PR; the script itself is good) Blocking:
|
tools/ci/fetch-sqlite-jdbc.sh takes an optional version and SHA-256, so the 3.49.1.0 driver the CLI stages is now downloaded through it as well: test-cli-local.sh (the deploy-ci CLI suite), test-cli-e2e.sh and test-local.sh pin it by the SHA-256 the release packages already use. No `curl -sL` download of the driver remains. CliHardenerS1S10Spec's S9 hold read the 3.50.3.0 URL from pr.yml, which now lives in the helper. It now checks that pr.yml calls the helper with its default, that the helper defaults to 3.50.3.0, and that test-cli-local.sh passes 3.49.1.0 with a SHA-256. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
|
rev1-r3 re-check @ 9154b4f: APPROVE Both points from my CHANGES at 0c1d652 are resolved. 1. The S9 HOLD guard is updated, not dropped.
The hold's intent, CLI on 3.49.1.0 and CI on 3.50.3.0, is still pinned. The suite passes on this head. 2. Every CI fetch is verified.
CI on this head: 19 pass, 2 skipping, 0 fail. Both download paths are exercised and verified in the logs:
MERGEABLE. INFO, not blocking: the local onboarding harness ( |
Summary
CI's SQLite JDBC download used
curl -sL, which exits 0 on an HTTP error page or a truncated transfer. A damaged jar then failed much later and less clearly: Tomcat loggedzip END header not foundforlib/ext/sqlite-jdbc.jar, and the core suite errored withorg.sqlite.JDBCnot found.The download now runs through
tools/ci/fetch-sqlite-jdbc.shin all three places that fetched it:pr.yml,snapshot.ymland thesetup-wheels-test-envaction. The script:curl --fail, retrying on any error;::error::, the URL, and the hash and size it actually got.The Docker test images download the same jar with
wget, which already exits non-zero on HTTP errors. They're unchanged here.Verification
unzip -treports no errors.::error::and exit 1. No output file is left behind.curlreports the 404 on each attempt; then::error::and exit 1.shellcheckpasses on the script.actionlintonpr.ymlandsnapshot.ymlreports the same 10 findings as ondevelop, all from existing steps.🤖 Generated with Claude Code