82 lines
2.8 KiB
Bash
Executable File
82 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Build and test all packages: Java, Python, Node.js
|
|
# Usage: ./scripts/build-all.sh [VERSION]
|
|
# Example: ./scripts/build-all.sh 1.0.0
|
|
# If VERSION is not provided, defaults to "0.0.0"
|
|
|
|
set -e
|
|
|
|
# =================================================================
|
|
# Configuration
|
|
# =================================================================
|
|
VERSION="${1:-0.0.0}"
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
# =================================================================
|
|
# Prerequisites Check
|
|
# =================================================================
|
|
echo "Checking prerequisites..."
|
|
|
|
command -v java >/dev/null || { echo "Error: java not found"; exit 1; }
|
|
command -v mvn >/dev/null || { echo "Error: mvn not found"; exit 1; }
|
|
command -v uv >/dev/null || { echo "Error: uv not found. Install with: curl -LsSf https://astral.sh/uv/install.sh | sh"; exit 1; }
|
|
command -v node >/dev/null || { echo "Error: node not found"; exit 1; }
|
|
command -v pnpm >/dev/null || { echo "Error: pnpm not found"; exit 1; }
|
|
|
|
echo "All prerequisites found."
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "Building all packages (version: $VERSION)"
|
|
echo "========================================"
|
|
|
|
# =================================================================
|
|
# Java Build & Test
|
|
# =================================================================
|
|
echo ""
|
|
echo "[1/3] Java: Building and testing..."
|
|
echo "----------------------------------------"
|
|
|
|
cd "$ROOT_DIR/java"
|
|
mvn versions:set -DnewVersion="$VERSION" -DgenerateBackupPoms=false
|
|
"$SCRIPT_DIR/build-java.sh"
|
|
|
|
echo "[1/3] Java: Done"
|
|
|
|
# =================================================================
|
|
# Python Build & Test
|
|
# =================================================================
|
|
echo ""
|
|
echo "[2/3] Python: Building and testing..."
|
|
echo "----------------------------------------"
|
|
|
|
cd "$ROOT_DIR/python/opendataloader-pdf"
|
|
sed -i.bak "s/^version = \"[^\"]*\"/version = \"$VERSION\"/" pyproject.toml && rm -f pyproject.toml.bak
|
|
"$SCRIPT_DIR/build-python.sh"
|
|
|
|
echo "[2/3] Python: Done"
|
|
|
|
# =================================================================
|
|
# Node.js Build & Test
|
|
# =================================================================
|
|
echo ""
|
|
echo "[3/3] Node.js: Building and testing..."
|
|
echo "----------------------------------------"
|
|
|
|
cd "$ROOT_DIR/node/opendataloader-pdf"
|
|
pnpm version "$VERSION" --no-git-tag-version --allow-same-version
|
|
"$SCRIPT_DIR/build-node.sh"
|
|
|
|
echo "[3/3] Node.js: Done"
|
|
|
|
# =================================================================
|
|
# Summary
|
|
# =================================================================
|
|
echo ""
|
|
echo "========================================"
|
|
echo "All builds completed successfully!"
|
|
echo "Version: $VERSION"
|
|
echo "========================================"
|