@@ -626,32 +626,53 @@ Extract Coverage:
626626 when : always
627627 script :
628628 - mkdir -p integration-results
629- - JACOCO_CLI_PATH="jacoco-${JACOCO_VERSION}/lib/jacococli.jar"
629+ # DEBUG: Check if artifact exists
630+ - echo "=== Checking for JaCoCo CLI ==="
631+ - ls -la . || true
632+ - find . -name "jacococli.jar" -type f || true
633+ - ls -la jacoco-${JACOCO_VERSION}/lib/ 2>/dev/null || echo "Directory not found"
634+ # Set path with fallback
635+ - |
636+ if [ -f "jacoco-${JACOCO_VERSION}/lib/jacococli.jar" ]; then
637+ JACOCO_CLI_PATH="jacoco-${JACOCO_VERSION}/lib/jacococli.jar"
638+ echo "Found JaCoCo CLI at: $JACOCO_CLI_PATH"
639+ else
640+ echo "ERROR: JaCoCo CLI not found!"
641+ echo "Available files in working directory:"
642+ find . -type f -name "*.jar" | head -20
643+ exit 1
644+ fi
645+
630646 - PODS=$(kubectl -n $K8S_NAMESPACE get pods -l app.kubernetes.io/instance=store -o jsonpath='{.items[*].metadata.name}')
631647
632- # First verify JaCoCo is actually running
633648 - |
634649 for POD in $PODS; do
635- echo "Checking JaCoCo on $POD..."
636- kubectl -n $K8S_NAMESPACE exec $POD -- env | grep JACOCO || echo "WARNING: JACOCO_OPTS not set on $POD"
637- kubectl -n $K8S_NAMESPACE exec $POD -- ps -ef | grep jacocoagent || echo "WARNING: JaCoCo agent not running on $POD"
650+ echo "Checking JaCoCo on $POD..."
651+ kubectl -n $K8S_NAMESPACE exec $POD -- env | grep JACOCO || echo "WARNING: JACOCO_OPTS not set on $POD"
652+ kubectl -n $K8S_NAMESPACE exec $POD -- ps -ef | grep jacocoagent || echo "WARNING: JaCoCo agent not running on $POD"
638653 done
654+
639655
640- # Then collect coverage
641656 - |
642657 for POD in $PODS; do
643- echo "Collecting coverage from $POD..."
644- kubectl -n $K8S_NAMESPACE cp "$JACOCO_CLI_PATH" "${POD}:/tmp/jacococli.jar"
645- POD_IP=$(kubectl -n $K8S_NAMESPACE get pod $POD -o jsonpath='{.status.podIP}')
646-
647- if kubectl -n $K8S_NAMESPACE exec $POD -- \
648- /usr/bin/java -jar /tmp/jacococli.jar dump \
649- --address $POD_IP --port 6300 --destfile /tmp/jacoco-it.exec; then
650- echo "✓ Success dumping coverage from $POD"
651- kubectl -n $K8S_NAMESPACE cp "${POD}:/tmp/jacoco-it.exec" "./integration-results/${POD}.exec"
652- else
653- echo "✗ Failed to dump coverage from $POD"
654- fi
658+ echo "Collecting coverage from $POD..."
659+ if ! kubectl -n $K8S_NAMESPACE cp "$JACOCO_CLI_PATH" "${POD}:/tmp/jacococli.jar"; then
660+ echo "ERROR: Failed to copy CLI to $POD"
661+ continue
662+ fi
663+
664+ # Get pod IP
665+ POD_IP=$(kubectl -n $K8S_NAMESPACE get pod $POD -o jsonpath='{.status.podIP}')
666+
667+ # Dump coverage
668+ if kubectl -n $K8S_NAMESPACE exec $POD -- \
669+ /usr/bin/java -jar /tmp/jacococli.jar dump \
670+ --address $POD_IP --port 6300 --destfile /tmp/jacoco-it.exec; then
671+ echo "Success dumping coverage from $POD"
672+ kubectl -n $K8S_NAMESPACE cp "${POD}:/tmp/jacoco-it.exec" "./integration-results/${POD}.exec"
673+ else
674+ echo "Failed to dump coverage from $POD (agent not running or port not listening)"
675+ fi
655676 done
656677 artifacts :
657678 paths :
@@ -798,6 +819,7 @@ get_jacoco_cli:
798819 key : " jacoco-cli-${JACOCO_VERSION}" # cache per version
799820 paths :
800821 - " jacoco-${JACOCO_VERSION}/" # cache the entire JaCoCo directory
822+ policy : pull-push
801823 artifacts :
802824 paths :
803825 - " jacoco-${JACOCO_VERSION}/lib/jacococli.jar"
0 commit comments