Some checks failed
Build CLI with Embedded SQLite / build (arm64, aarch64-linux) (push) Waiting to run
Build CLI with Embedded SQLite / build (x86_64, x86_64-linux) (push) Waiting to run
Build CLI with Embedded SQLite / build-macos (arm64) (push) Waiting to run
Build CLI with Embedded SQLite / build-macos (x86_64) (push) Waiting to run
Documentation / build-and-publish (push) Waiting to run
Security Scan / Security Analysis (push) Waiting to run
Security Scan / Native Library Security (push) Waiting to run
Checkout test / test (push) Successful in 5s
CI/CD Pipeline / Test (push) Has been cancelled
CI/CD Pipeline / Dev Compose Smoke Test (push) Has been cancelled
CI/CD Pipeline / Build (push) Has been cancelled
CI/CD Pipeline / Test Scripts (push) Has been cancelled
CI/CD Pipeline / Test Native Libraries (push) Has been cancelled
CI/CD Pipeline / Docker Build (push) Has been cancelled
- Add SHA256 verification to build_sqlite.sh (SQLite 3.48.0) - Add build-sqlite and CLI build steps to ci.yml build job - Remove cache from benchmark-metrics.yml
64 lines
2.1 KiB
Bash
64 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# Build/fetch SQLite amalgamation for embedding
|
|
# Mirrors the rsync pattern: assets/sqlite_release_<os>_<arch>/
|
|
|
|
set -euo pipefail
|
|
|
|
SQLITE_VERSION="${SQLITE_VERSION:-3480000}" # 3.48.0
|
|
SQLITE_YEAR="${SQLITE_YEAR:-2025}"
|
|
SQLITE_SRC_BASE="${SQLITE_SRC_BASE:-https://www.sqlite.org/${SQLITE_YEAR}}"
|
|
SQLITE_SHA256="${SQLITE_SHA256:-d9a15a42db7c78f88fe3d3c5945acce2f4bfe9e4da9f685cd19f6ea1d40aa884}"
|
|
|
|
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
|
arch="$(uname -m)"
|
|
if [[ "${arch}" == "aarch64" || "${arch}" == "arm64" ]]; then arch="arm64"; fi
|
|
if [[ "${arch}" == "x86_64" ]]; then arch="x86_64"; fi
|
|
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
out_dir="${repo_root}/src/assets/sqlite_${os}_${arch}"
|
|
|
|
echo "Fetching SQLite ${SQLITE_VERSION} for ${os}/${arch}..."
|
|
|
|
# Create platform-specific output directory
|
|
mkdir -p "${out_dir}"
|
|
|
|
# Download if not present
|
|
if [[ ! -f "${out_dir}/sqlite3.c" ]]; then
|
|
echo "Fetching SQLite amalgamation..."
|
|
tmp="$(mktemp -d)"
|
|
cleanup() { rm -rf "${tmp}"; }
|
|
trap cleanup EXIT
|
|
|
|
url="${SQLITE_SRC_BASE}/sqlite-amalgamation-${SQLITE_VERSION}.zip"
|
|
echo "Fetching ${url}"
|
|
curl -fsSL "${url}" -o "${tmp}/sqlite.zip"
|
|
|
|
# Verify SHA256 if provided
|
|
if [[ -n "${SQLITE_SHA256}" ]]; then
|
|
echo "verifying sha256 for ${url}"
|
|
actual_sha256="$(sha256sum "${tmp}/sqlite.zip" | cut -d' ' -f1)"
|
|
if [[ "${actual_sha256}" != "${SQLITE_SHA256}" ]]; then
|
|
echo "build-sqlite: sha256 mismatch!" >&2
|
|
echo " expected: ${SQLITE_SHA256}" >&2
|
|
echo " actual: ${actual_sha256}" >&2
|
|
exit 2
|
|
fi
|
|
echo "${tmp}/sqlite.zip: OK"
|
|
fi
|
|
|
|
unzip -q "${tmp}/sqlite.zip" -d "${tmp}"
|
|
mv "${tmp}/sqlite-amalgamation-${SQLITE_VERSION}"/* "${out_dir}/"
|
|
|
|
echo "✓ SQLite fetched to ${out_dir}"
|
|
else
|
|
echo "✓ SQLite already present at ${out_dir}"
|
|
fi
|
|
|
|
# Verify
|
|
if [[ -f "${out_dir}/sqlite3.c" && -f "${out_dir}/sqlite3.h" ]]; then
|
|
echo "✓ SQLite ready:"
|
|
ls -lh "${out_dir}/sqlite3.c" "${out_dir}/sqlite3.h"
|
|
else
|
|
echo "Error: SQLite files not found in ${out_dir}"
|
|
exit 1
|
|
fi
|