All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 16m18s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 30m58s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 2s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
147 lines
3.6 KiB
Bash
147 lines
3.6 KiB
Bash
#!/bin/bash
|
||
|
||
# ============================================================================
|
||
# Script de Déploiement Portainer - Xpeditis
|
||
# ============================================================================
|
||
# Ce script build et push les images Docker vers le registry Scaleway
|
||
# Usage: ./deploy-to-portainer.sh [backend|frontend|all]
|
||
# ============================================================================
|
||
|
||
set -e # Exit on error
|
||
|
||
# Colors for output
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# Configuration
|
||
REGISTRY="rg.fr-par.scw.cloud/weworkstudio"
|
||
TAG="preprod"
|
||
|
||
# Functions
|
||
print_header() {
|
||
echo -e "\n${BLUE}========================================${NC}"
|
||
echo -e "${BLUE}$1${NC}"
|
||
echo -e "${BLUE}========================================${NC}\n"
|
||
}
|
||
|
||
print_success() {
|
||
echo -e "${GREEN}✅ $1${NC}"
|
||
}
|
||
|
||
print_error() {
|
||
echo -e "${RED}❌ $1${NC}"
|
||
}
|
||
|
||
print_warning() {
|
||
echo -e "${YELLOW}⚠️ $1${NC}"
|
||
}
|
||
|
||
print_info() {
|
||
echo -e "${BLUE}ℹ️ $1${NC}"
|
||
}
|
||
|
||
# Check if Docker is running
|
||
check_docker() {
|
||
print_info "Checking Docker..."
|
||
if ! docker info > /dev/null 2>&1; then
|
||
print_error "Docker is not running. Please start Docker Desktop."
|
||
exit 1
|
||
fi
|
||
print_success "Docker is running"
|
||
}
|
||
|
||
# Build and push backend
|
||
build_backend() {
|
||
print_header "Building Backend Image"
|
||
|
||
cd apps/backend
|
||
|
||
print_info "Building image: ${REGISTRY}/xpeditis-backend:${TAG}"
|
||
docker build -t ${REGISTRY}/xpeditis-backend:${TAG} .
|
||
|
||
print_success "Backend image built successfully"
|
||
|
||
print_info "Pushing image to registry..."
|
||
docker push ${REGISTRY}/xpeditis-backend:${TAG}
|
||
|
||
print_success "Backend image pushed successfully"
|
||
|
||
cd ../..
|
||
}
|
||
|
||
# Build and push frontend
|
||
build_frontend() {
|
||
print_header "Building Frontend Image"
|
||
|
||
cd apps/frontend
|
||
|
||
print_info "Building image: ${REGISTRY}/xpeditis-frontend:${TAG}"
|
||
docker build -t ${REGISTRY}/xpeditis-frontend:${TAG} .
|
||
|
||
print_success "Frontend image built successfully"
|
||
|
||
print_info "Pushing image to registry..."
|
||
docker push ${REGISTRY}/xpeditis-frontend:${TAG}
|
||
|
||
print_success "Frontend image pushed successfully"
|
||
|
||
cd ../..
|
||
}
|
||
|
||
# Main script
|
||
main() {
|
||
print_header "Xpeditis Deployment Script"
|
||
|
||
# Check Docker
|
||
check_docker
|
||
|
||
# Get target from argument
|
||
TARGET=${1:-all}
|
||
|
||
case $TARGET in
|
||
backend)
|
||
build_backend
|
||
;;
|
||
frontend)
|
||
build_frontend
|
||
;;
|
||
all)
|
||
build_backend
|
||
build_frontend
|
||
;;
|
||
*)
|
||
print_error "Invalid target: $TARGET"
|
||
echo "Usage: $0 [backend|frontend|all]"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
print_header "Deployment Summary"
|
||
|
||
if [ "$TARGET" = "all" ] || [ "$TARGET" = "backend" ]; then
|
||
echo -e "Backend: ${GREEN}${REGISTRY}/xpeditis-backend:${TAG}${NC}"
|
||
fi
|
||
|
||
if [ "$TARGET" = "all" ] || [ "$TARGET" = "frontend" ]; then
|
||
echo -e "Frontend: ${GREEN}${REGISTRY}/xpeditis-frontend:${TAG}${NC}"
|
||
fi
|
||
|
||
echo ""
|
||
print_success "Images successfully built and pushed!"
|
||
echo ""
|
||
print_warning "Next Steps:"
|
||
echo " 1. Go to Portainer: https://portainer.weworkstudio.com"
|
||
echo " 2. Navigate to: Stacks → xpeditis-preprod"
|
||
echo " 3. Click 'Update the stack'"
|
||
echo " 4. Check '✅ Re-pull image and redeploy'"
|
||
echo " 5. Click 'Update'"
|
||
echo ""
|
||
print_info "Documentation: DEPLOYMENT_CHECKLIST.md"
|
||
}
|
||
|
||
# Run main
|
||
main "$@"
|