@@ -65,23 +65,46 @@ jobs:
6565 path : /tmp
6666
6767 - name : script
68+ timeout-minutes : 45
6869 run : |
6970 export ZOMBIE_K8S_CI_NAMESPACE=$(cat /data/namespace)
7071 export ZOMBIE_PROVIDER="k8s"
71- # mv artifacts.tar.gz /tmp
7272 cd /tmp
7373 ls -la
7474 tar xvfz artifacts.tar.gz
7575 ./artifacts/smoke --nocapture
76- # for running local
77- # cargo test --test smoke -- --nocapture
76+
77+ - name : dump logs
78+ if : always()
79+ run : |
80+ export ZOMBIE_K8S_CI_NAMESPACE=$(cat /data/namespace)
81+ mkdir -p /tmp/zombie-1/logs
82+
83+ # Install kubectl if not available
84+ if ! command -v kubectl &> /dev/null; then
85+ echo "Installing kubectl..."
86+ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
87+ chmod +x kubectl
88+ mv kubectl /usr/local/bin/
89+ fi
90+
91+ echo "Listing pods in namespace $ZOMBIE_K8S_CI_NAMESPACE..."
92+ kubectl get pods -n "$ZOMBIE_K8S_CI_NAMESPACE" -o wide || true
93+ for pod in $(kubectl get pods -n "$ZOMBIE_K8S_CI_NAMESPACE" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || true); do
94+ echo "Dumping logs for pod: $pod"
95+ kubectl logs -n "$ZOMBIE_K8S_CI_NAMESPACE" "$pod" --all-containers=true > "/tmp/zombie-1/logs/${pod}.log" 2>&1 || true
96+ done
97+ find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
98+ echo "Collected logs:"
99+ ls -la /tmp/zombie-1/logs/ || true
78100
79101 - name : upload logs
102+ if : always()
80103 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
81104 with :
82105 name : zombienet-logs-${{ github.job }}-${{ github.sha }}
83106 path : |
84- /tmp/zombie* /logs/*
107+ /tmp/zombie-1 /logs/*
85108
86109 docker-integration-test-smoke :
87110 runs-on : parity-default
@@ -111,13 +134,24 @@ jobs:
111134 tar xvfz artifacts.tar.gz
112135 ./artifacts/smoke --nocapture
113136
137+ - name : dump logs
138+ if : always()
139+ run : |
140+ mkdir -p /tmp/zombie-1/logs
141+ for container in $(docker ps -a --filter "name=zombie" --format "{{.Names}}" 2>/dev/null || true); do
142+ echo "Dumping logs for container: $container"
143+ docker logs "$container" > "/tmp/zombie-1/logs/${container}.log" 2>&1 || true
144+ done
145+ find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
146+ ls -la /tmp/zombie-1/logs/ || true
147+
114148 - name : upload logs
115149 if : always()
116150 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
117151 with :
118152 name : zombienet-logs-${{ github.job }}-${{ github.sha }}
119153 path : |
120- /tmp/zombie* /logs/*
154+ /tmp/zombie-1 /logs/*
121155
122156 native-integration-test-smoke :
123157 runs-on : parity-default
@@ -156,9 +190,17 @@ jobs:
156190 ./artifacts/smoke_native --nocapture
157191 # cargo test --test smoke-native -- --nocapture
158192
193+ - name : collect logs
194+ if : always()
195+ run : |
196+ mkdir -p /tmp/zombie-1/logs
197+ find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
198+ ls -la /tmp/zombie-1/logs/ || true
199+
159200 - name : upload logs
201+ if : always()
160202 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
161203 with :
162204 name : zombienet-logs-${{ github.job }}-${{ github.sha }}
163205 path : |
164- /tmp/zombie* /logs/*
206+ /tmp/zombie-1 /logs/*
0 commit comments