pipeline { agent any stages { stage('Restart all services') { steps { script { try { sh ''' set +e # Wyłącz strict error handling echo "=== Sprawdzam dostępność Docker ===" which docker docker --version echo "=== Sprawdzam czy Docker Swarm jest aktywny ===" if docker node ls > /dev/null 2>&1; then echo "Docker Swarm jest aktywny" echo "=== Lista usług ===" SERVICES=$(docker service ls --format "{{.Name}}" 2>/dev/null | grep -v 'jenkins' || true) if [ -z "$SERVICES" ]; then echo "BRAK USŁUG DO RESTARTU - nie znaleziono żadnych usług Docker Swarm" echo "To może oznaczać, że:" echo "1. Nie używasz Docker Swarm" echo "2. Wszystkie usługi mają 'jenkins' w nazwie" echo "3. Naprawdę nie masz żadnych usług" exit 0 # To nie jest błąd - po prostu nie ma co restartować else echo "Znalezione usługi do restartu: $SERVICES" for service in $SERVICES; do echo "Restartowanie: $service" docker service update --force $service done fi else echo "Docker Swarm NIE jest aktywny - przechodzę do restartu kontenerów" # Restart zwykłych kontenerów zamiast usług CONTAINERS=$(docker ps --format "{{.Names}}" | grep -v 'jenkins' || true) if [ -z "$CONTAINERS" ]; then echo "BRAK KONTENERÓW DO RESTARTU" exit 0 else echo "Restartowanie kontenerów: $CONTAINERS" docker restart $CONTAINERS fi fi ''' } catch (Exception e) { echo "Błąd: ${e.getMessage()}" currentBuild.result = 'UNSTABLE' } } } } } }