Files
BackOffice/build-deps.sh
T
masoodafar-web c062bd358c
Build and Deploy / build (push) Failing after 16s
Refactor code structure for improved readability and maintainability
2026-01-03 15:38:50 +03:30

80 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Build all BFF proto dependencies and copy DLLs to libs folder
# This script is automatically run before build via Directory.Build.targets
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIBS_DIR="$SCRIPT_DIR/libs"
BFF_PROTOS_DIR="$SCRIPT_DIR/../BackOffice.BFF/src/Protobufs"
echo "🔧 Building all proto dependencies..."
# Create libs directory
mkdir -p "$LIBS_DIR"
# All proto projects
PROTO_PROJECTS=(
"BackOffice.BFF.Common.Protobuf"
"BackOffice.BFF.Category.Protobuf"
"BackOffice.BFF.ClubMembership.Protobuf"
"BackOffice.BFF.Commission.Protobuf"
"BackOffice.BFF.Configuration.Protobuf"
"BackOffice.BFF.DiscountCategory.Protobuf"
"BackOffice.BFF.DiscountOrder.Protobuf"
"BackOffice.BFF.DiscountProduct.Protobuf"
"BackOffice.BFF.DiscountShoppingCart.Protobuf"
"BackOffice.BFF.Health.Protobuf"
"BackOffice.BFF.Inventory.Protobuf"
"BackOffice.BFF.ManualPayment.Protobuf"
"BackOffice.BFF.NetworkMembership.Protobuf"
"BackOffice.BFF.Otp.Protobuf"
"BackOffice.BFF.Package.Protobuf"
"BackOffice.BFF.Products.Protobuf"
"BackOffice.BFF.ProductTag.Protobuf"
"BackOffice.BFF.PublicMessage.Protobuf"
"BackOffice.BFF.Role.Protobuf"
"BackOffice.BFF.Tag.Protobuf"
"BackOffice.BFF.User.Protobuf"
"BackOffice.BFF.UserAddress.Protobuf"
"BackOffice.BFF.UserOrder.Protobuf"
"BackOffice.BFF.UserRole.Protobuf"
)
BUILT_COUNT=0
FAILED_COUNT=0
for PROJECT in "${PROTO_PROJECTS[@]}"; do
PROJECT_DIR="$BFF_PROTOS_DIR/$PROJECT"
if [ -d "$PROJECT_DIR" ]; then
echo "📦 Building $PROJECT..."
if dotnet build "$PROJECT_DIR" -c Release --verbosity quiet 2>/dev/null; then
# Copy DLL and PDB - check both net9.0 and net8.0
if [ -f "$PROJECT_DIR/bin/Release/net9.0/$PROJECT.dll" ]; then
cp "$PROJECT_DIR/bin/Release/net9.0/$PROJECT.dll" "$LIBS_DIR/" && ((BUILT_COUNT++))
cp "$PROJECT_DIR/bin/Release/net9.0/$PROJECT.pdb" "$LIBS_DIR/" 2>/dev/null || true
elif [ -f "$PROJECT_DIR/bin/Release/net8.0/$PROJECT.dll" ]; then
cp "$PROJECT_DIR/bin/Release/net8.0/$PROJECT.dll" "$LIBS_DIR/" && ((BUILT_COUNT++))
cp "$PROJECT_DIR/bin/Release/net8.0/$PROJECT.pdb" "$LIBS_DIR/" 2>/dev/null || true
else
echo "⚠️ DLL not found for: $PROJECT"
((FAILED_COUNT++))
fi
else
echo "⚠️ Failed to build: $PROJECT"
((FAILED_COUNT++))
fi
else
echo "⚠️ Project not found: $PROJECT"
((FAILED_COUNT++))
fi
done
echo ""
echo "✅ Build complete!"
echo " Built: $BUILT_COUNT projects"
echo " Failed: $FAILED_COUNT projects"
echo " Output: $LIBS_DIR"
echo ""
ls -la "$LIBS_DIR"/*.dll 2>/dev/null | wc -l | xargs -I {} echo " Total DLLs: {}"