136 lines
4.7 KiB
Plaintext
136 lines
4.7 KiB
Plaintext
# Package Module - Distribution packaging
|
|
# =======================================
|
|
|
|
# Show detailed package help
|
|
@package-help:
|
|
echo "📦 PACKAGE MODULE HELP"
|
|
echo "======================"
|
|
echo ""
|
|
echo "This module handles distribution packaging including:"
|
|
echo "• Binary packaging for multiple platforms"
|
|
echo "• Container image building"
|
|
echo "• Distribution archive creation"
|
|
echo "• Installation package generation"
|
|
echo ""
|
|
echo "RECIPES:"
|
|
echo " package-all Create all distribution packages"
|
|
echo " package-binaries Package binaries for distribution"
|
|
echo " package-containers Build container images"
|
|
echo " create-archives Create distribution archives"
|
|
echo " create-installers Create installation packages"
|
|
echo " dist-generate Generate complete distributions"
|
|
echo ""
|
|
echo "CONFIGURATION:"
|
|
echo " platforms: {{platforms}}"
|
|
echo " variants: {{variants}}"
|
|
echo " version: {{version}}"
|
|
echo ""
|
|
echo "EXAMPLES:"
|
|
echo " just package-all # Create all packages"
|
|
echo " just package-containers # Build container images"
|
|
echo " just create-archives # Create archives only"
|
|
|
|
# Create all distribution packages
|
|
@package-all: dist-generate package-binaries package-containers
|
|
echo "✅ All distribution packages created successfully"
|
|
|
|
# Generate complete distributions
|
|
@dist-generate:
|
|
echo "📦 Generating distributions..."
|
|
{{nu}} {{tools_dir}}/distribution/generate-distribution.nu \
|
|
--version {{version}} \
|
|
--platforms {{platforms}} \
|
|
--variants {{variants}} \
|
|
--output-dir {{dist_dir}} \
|
|
--compress \
|
|
--generate-docs \
|
|
--parallel-builds={{parallel}} \
|
|
--validate-output \
|
|
--verbose={{verbose}}
|
|
echo "✅ Distributions generated successfully"
|
|
|
|
# Package binaries for distribution
|
|
@package-binaries:
|
|
echo "📋 Packaging binaries..."
|
|
{{nu}} {{tools_dir}}/package/package-binaries.nu \
|
|
--source-dir {{dist_dir}}/platform \
|
|
--output-dir {{packages_dir}}/binaries \
|
|
--platforms {{platforms}} \
|
|
--format archive \
|
|
--compress \
|
|
--strip \
|
|
--verbose={{verbose}}
|
|
echo "✅ Binaries packaged successfully"
|
|
|
|
# Build container images
|
|
@package-containers:
|
|
echo "🐳 Building container images..."
|
|
{{nu}} {{tools_dir}}/package/build-containers.nu \
|
|
--dist-dir {{dist_dir}} \
|
|
--tag-prefix {{provisioning_name}} \
|
|
--version {{version}} \
|
|
--platforms "linux/amd64" \
|
|
--cache \
|
|
--verbose={{verbose}}
|
|
echo "✅ Container images built successfully"
|
|
|
|
# Create distribution archives
|
|
@create-archives:
|
|
echo "📂 Creating distribution archives..."
|
|
{{nu}} {{tools_dir}}/package/create-tarball.nu \
|
|
--dist-dir {{dist_dir}} \
|
|
--output-dir {{packages_dir}} \
|
|
--format both \
|
|
--platform all \
|
|
--variant complete \
|
|
--version {{version}} \
|
|
--compression-level 6 \
|
|
--checksum \
|
|
--verbose={{verbose}}
|
|
echo "✅ Distribution archives created successfully"
|
|
|
|
# Create installation packages
|
|
@create-installers:
|
|
#!/usr/bin/env bash
|
|
echo "📥 Creating installers..."
|
|
for dist in {{dist_dir}}/provisioning-{{version}}-*-complete; do
|
|
if [ -d "$dist" ]; then
|
|
{{nu}} {{tools_dir}}/distribution/create-installer.nu \
|
|
"$dist" \
|
|
--output-dir {{packages_dir}}/installers \
|
|
--installer-types shell,package \
|
|
--platforms linux,macos,windows \
|
|
--include-services \
|
|
--create-uninstaller \
|
|
--validate-installer \
|
|
--verbose={{verbose}} || exit 1
|
|
fi
|
|
done
|
|
echo "✅ Installers created successfully"
|
|
|
|
# Validate packages
|
|
@package-validate:
|
|
echo "🔍 Validating packages..."
|
|
{{nu}} {{tools_dir}}/package/validate-package.nu {{dist_dir}} \
|
|
--validation-type complete \
|
|
--check-signatures \
|
|
--verbose={{verbose}}
|
|
echo "✅ Package validation completed"
|
|
|
|
# Show package statistics
|
|
@package-stats:
|
|
echo "📊 Package Statistics"
|
|
echo "===================="
|
|
echo "Distribution directory: {{dist_dir}}"
|
|
echo "Packages directory: {{packages_dir}}"
|
|
echo ""
|
|
du -sh {{dist_dir}} {{packages_dir}} 2>/dev/null || echo "Directories not found"
|
|
echo ""
|
|
find {{packages_dir}} -name "*.tar.gz" -o -name "*.zip" -o -name "*.pkg" 2>/dev/null | wc -l | xargs echo "Package files:"
|
|
|
|
# Clean package artifacts
|
|
@package-clean:
|
|
echo "🧹 Cleaning package artifacts..."
|
|
rm -rf {{packages_dir}}
|
|
mkdir -p {{packages_dir}}
|
|
echo "✅ Package artifacts cleaned" |