provisioning/justfiles/build.just
2025-10-07 11:12:02 +01:00

117 lines
4.2 KiB
Plaintext

# Build Module - Core provisioning build operations
# ==================================================
# Show detailed build help
@build-help:
echo "🏗️ BUILD MODULE HELP"
echo "===================="
echo ""
echo "This module handles all core build operations including:"
echo "• Platform binary compilation (Rust orchestrator)"
echo "• Core Nushell library bundling"
echo "• KCL schema validation and compilation"
echo "• Cross-platform builds"
echo ""
echo "RECIPES:"
echo " build-all Complete build (platform + core + KCL validation)"
echo " build-platform Build platform binaries for target architecture"
echo " build-core Bundle and validate Nushell libraries"
echo " validate-kcl Validate and compile KCL configuration schemas"
echo " build-cross Cross-compile for multiple platforms"
echo " build-debug Build with debug information and symbols"
echo ""
echo "CONFIGURATION:"
echo " rust_target: {{rust_target}}"
echo " build_mode: {{build_mode}}"
echo " platforms: {{platforms}}"
echo ""
echo "EXAMPLES:"
echo " just build-all # Complete build pipeline"
echo " just build-platform --verbose # Verbose platform build"
echo " just build-cross # Multi-platform build"
echo " just validate-kcl # KCL schema validation"
# Complete build pipeline - all components
@build-all: create-dirs build-platform build-core validate-kcl
echo "✅ Complete build pipeline finished"
# Build platform binaries (Rust orchestrator)
@build-platform:
echo "🔨 Building platform binaries..."
{{nu}} {{tools_dir}}/build/compile-platform.nu \
--target {{rust_target}} \
--{{build_mode}} \
--output-dir {{dist_dir}}/platform \
--verbose={{verbose}}
echo "✅ Platform binaries built successfully"
# Bundle core Nushell libraries
@build-core:
echo "📚 Building core libraries..."
{{nu}} {{tools_dir}}/build/bundle-core.nu \
--output-dir {{dist_dir}}/core \
--config-dir {{dist_dir}}/config \
--validate \
--exclude-dev \
--verbose={{verbose}}
echo "✅ Core libraries bundled successfully"
# Validate and compile KCL schemas
@validate-kcl:
echo "🔍 Validating KCL schemas..."
{{nu}} {{tools_dir}}/build/validate-kcl.nu \
--output-dir {{dist_dir}}/kcl \
--format-code \
--check-dependencies \
--verbose={{verbose}}
echo "✅ KCL schemas validated successfully"
# Cross-compile for multiple platforms
@build-cross:
#!/usr/bin/env bash
echo "🌐 Cross-compiling for multiple platforms..."
IFS=',' read -ra PLATFORM_LIST <<< "{{platforms}}"
for platform in "${PLATFORM_LIST[@]}"; do
echo "Building for $platform..."
{{nu}} {{tools_dir}}/build/compile-platform.nu \
--target "$platform" \
--{{build_mode}} \
--output-dir {{dist_dir}}/platform \
--verbose={{verbose}} || exit 1
done
echo "✅ Cross-compilation completed successfully"
# Build with debug information
@build-debug: create-dirs
echo "🐛 Building with debug information..."
{{nu}} {{tools_dir}}/build/compile-platform.nu \
--target {{rust_target}} \
--debug \
--output-dir {{dist_dir}}/platform \
--verbose=true
echo "✅ Debug build completed"
# Fast incremental build for development
@build-incremental:
echo "⚡ Incremental development build..."
{{nu}} {{tools_dir}}/build/compile-platform.nu \
--target {{rust_target}} \
--dev \
--output-dir {{dist_dir}}/platform \
--incremental \
--verbose={{verbose}}
echo "✅ Incremental build completed"
# Clean and rebuild everything
@build-clean-all: clean build-all
echo "✅ Clean rebuild completed"
# Check build system health
@build-check:
echo "🔍 Checking build system health..."
{{nu}} {{tools_dir}}/build/check-system.nu \
--check-tools \
--check-dependencies \
--check-config \
--verbose={{verbose}}
echo "✅ Build system health check completed"