Nomad changes
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s

This commit is contained in:
Henrik Jess Nielsen
2026-06-01 23:40:55 +02:00
parent 72b1a0a6ed
commit b4c07d3693
5723 changed files with 1130655 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env pwsh
# Package CLI binary as zip archive (Windows)
# Used by: ci-rust.yaml - Package CLI (Windows) step
# Arguments: TARGET (e.g., x86_64-pc-windows-msvc)
param(
[Parameter(Mandatory=$true)]
[string]$Target
)
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
Write-Host "=== Packaging CLI binary for $Target ==="
cd target/$Target/release
Compress-Archive -Path kreuzberg.exe -DestinationPath ../../../kreuzberg-cli-$Target.zip
Write-Host "Packaging complete: kreuzberg-cli-$Target.zip"

103
scripts/ci/rust/run-unit-tests.sh Executable file
View File

@@ -0,0 +1,103 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../../.." && pwd)}"
source "$REPO_ROOT/scripts/lib/common.sh"
source "$REPO_ROOT/scripts/lib/tessdata.sh"
validate_repo_root "$REPO_ROOT" || exit 1
cd "$REPO_ROOT"
echo "=== Running Rust unit tests ==="
setup_tessdata
echo "Test environment configuration:"
echo " TESSDATA_PREFIX: ${TESSDATA_PREFIX:-not set}"
echo " RUST_BACKTRACE: ${RUST_BACKTRACE:-not set}"
echo " CARGO_TERM_COLOR: ${CARGO_TERM_COLOR:-not set}"
echo "Workspace information:"
echo " Repository: $REPO_ROOT"
echo " Excluded packages: kreuzberg-e2e-generator, kreuzberg-py, kreuzberg-node (+ benchmark-harness on Windows)"
if [ ! -d "$TESSDATA_PREFIX" ]; then
echo "WARNING: TESSDATA_PREFIX directory not found: $TESSDATA_PREFIX"
echo "Attempting to create it..."
mkdir -p "$TESSDATA_PREFIX"
ensure_tessdata "$TESSDATA_PREFIX"
fi
echo "Verifying Tesseract data files..."
for lang in eng osd; do
langfile="$TESSDATA_PREFIX/${lang}.traineddata"
if [ -f "$langfile" ]; then
size=$(stat -f%z "$langfile" 2>/dev/null || stat -c%s "$langfile" 2>/dev/null || echo "unknown")
echo "${lang}.traineddata (${size} bytes)"
else
echo " WARNING: Missing ${lang}.traineddata"
fi
done
if [ -n "${KREUZBERG_PDFIUM_PREBUILT:-}" ]; then
export LD_LIBRARY_PATH="${KREUZBERG_PDFIUM_PREBUILT}/lib:${LD_LIBRARY_PATH:-}"
export DYLD_LIBRARY_PATH="${KREUZBERG_PDFIUM_PREBUILT}/lib:${DYLD_LIBRARY_PATH:-}"
export DYLD_FALLBACK_LIBRARY_PATH="${KREUZBERG_PDFIUM_PREBUILT}/lib:${DYLD_FALLBACK_LIBRARY_PATH:-}"
echo "Library path configuration:"
echo " LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
echo " DYLD_LIBRARY_PATH: $DYLD_LIBRARY_PATH"
echo " DYLD_FALLBACK_LIBRARY_PATH: $DYLD_FALLBACK_LIBRARY_PATH"
fi
echo "=== Starting cargo test ==="
# NOTE: We intentionally avoid `--all-features` for the `kreuzberg` crate because
TEST_LOG="/tmp/cargo-test-$$.log"
if ! {
# `--all-targets` runs --lib --bins --tests --examples --benches but excludes
# `--doc`. 22 rustdoc examples in the kreuzberg crate currently reference
# private items (extraction::capacity::estimate_content_capacity et al.) and
# fail to compile. Tracking the cleanup separately; doc-test coverage is not
# on the v5.0.0 publish path. TODO: re-enable doc tests once the failing
# examples are rewritten against the public API.
echo "=== cargo test -p kreuzberg --features full ==="
RUST_BACKTRACE=full cargo test -p kreuzberg --features full --all-targets --verbose
echo "=== cargo test --workspace (all features, excluding kreuzberg) ==="
extra_excludes=()
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" || "$OSTYPE" == "win32" ]]; then
extra_excludes+=(--exclude benchmark-harness)
fi
RUST_BACKTRACE=full cargo test \
--workspace \
--exclude kreuzberg \
--exclude kreuzberg-e2e-generator \
--exclude kreuzberg-py \
--exclude kreuzberg-node \
${extra_excludes[@]+"${extra_excludes[@]}"} \
--all-features \
--all-targets \
--verbose
} 2>&1 | tee "$TEST_LOG"; then
echo "=== Test execution failed ==="
echo "Last 50 lines of test output:"
tail -n 50 "$TEST_LOG"
echo ""
echo "Collecting diagnostic information..."
echo "Disk space:"
df -h . || du -h . 2>/dev/null | head -1
echo "Cargo environment:"
cargo --version
rustc --version
rm -f "$TEST_LOG"
exit 1
fi
rm -f "$TEST_LOG"
echo "=== Tests complete ==="