Files
2026-07-13 12:59:42 +08:00

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 "========================================"