Initialisation depot
This commit is contained in:
73
arti-api/auth-service/pipeline/convert-to-jsonnet.sh
Executable file
73
arti-api/auth-service/pipeline/convert-to-jsonnet.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Convert existing .drone.yml to modular Jsonnet structure
|
||||
# This script helps migrate from YAML to factorized Jsonnet configuration
|
||||
|
||||
echo "🔄 Converting Drone configuration to modular Jsonnet..."
|
||||
|
||||
# Generate the final configuration from Jsonnet
|
||||
echo "📝 Generating .drone.yml from Jsonnet..."
|
||||
if command -v jsonnet >/dev/null 2>&1; then
|
||||
jsonnet .drone.jsonnet > .drone.yml.generated
|
||||
echo "✅ Generated .drone.yml.generated from Jsonnet"
|
||||
echo ""
|
||||
echo "📋 To use the new configuration:"
|
||||
echo "1. Review: cat .drone.yml.generated"
|
||||
echo "2. Test: python3 -c \"import yaml; yaml.safe_load(open('.drone.yml.generated'))\""
|
||||
echo "3. Replace: mv .drone.yml.generated .drone.yml"
|
||||
echo "4. Commit: git add .drone.jsonnet common.libsonnet build-steps.libsonnet .drone.yml"
|
||||
else
|
||||
echo "⚠️ jsonnet not installed. Installing..."
|
||||
|
||||
# Try to install jsonnet
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
sudo apt-get update && sudo apt-get install -y jsonnet
|
||||
elif command -v apk >/dev/null 2>&1; then
|
||||
apk add --no-cache jsonnet
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
sudo yum install -y jsonnet
|
||||
else
|
||||
echo "❌ Cannot install jsonnet automatically"
|
||||
echo "📖 Please install jsonnet manually:"
|
||||
echo " - Ubuntu/Debian: sudo apt-get install jsonnet"
|
||||
echo " - Alpine: apk add jsonnet"
|
||||
echo " - CentOS/RHEL: sudo yum install jsonnet"
|
||||
echo " - Or download from: https://github.com/google/jsonnet"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Try generating again
|
||||
if command -v jsonnet >/dev/null 2>&1; then
|
||||
jsonnet .drone.jsonnet > .drone.yml.generated
|
||||
echo "✅ Generated .drone.yml.generated from Jsonnet"
|
||||
else
|
||||
echo "❌ Failed to install jsonnet"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "🎯 Benefits of Jsonnet configuration:"
|
||||
echo " ✅ Reusable components (common.libsonnet, build-steps.libsonnet)"
|
||||
echo " ✅ Variables and functions"
|
||||
echo " ✅ Conditional logic"
|
||||
echo " ✅ Better maintainability"
|
||||
echo " ✅ DRY principle"
|
||||
echo ""
|
||||
echo "📚 Files created:"
|
||||
echo " - .drone.jsonnet (main configuration)"
|
||||
echo " - common.libsonnet (shared steps and config)"
|
||||
echo " - build-steps.libsonnet (build-specific logic)"
|
||||
echo " - .drone.yml.generated (generated YAML)"
|
||||
|
||||
# Validate the generated YAML
|
||||
if [ -f ".drone.yml.generated" ]; then
|
||||
echo ""
|
||||
echo "🔍 Validating generated YAML..."
|
||||
if python3 -c "import yaml; yaml.safe_load(open('.drone.yml.generated'))" 2>/dev/null; then
|
||||
echo "✅ Generated YAML is valid"
|
||||
else
|
||||
echo "❌ Generated YAML has syntax errors"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user