From 2f1ffdb7cd0351e12946a1cd67bebef1df3fe08b Mon Sep 17 00:00:00 2001 From: Dominic Evans Date: Mon, 21 Aug 2023 14:34:08 +0100 Subject: [PATCH] feat(ci): experiment with tcpdump during FVT It can be useful to inspect protocol captures as part of debugging an FVT test, particularly if the test is flakey, so experiment with capturing an uploading a .pcap file. Signed-off-by: Dominic Evans --- .github/workflows/fvt.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/fvt.yml b/.github/workflows/fvt.yml index 5b8ed844be..5e819df4fd 100644 --- a/.github/workflows/fvt.yml +++ b/.github/workflows/fvt.yml @@ -38,10 +38,27 @@ jobs: uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} - - name: Test (Functional) + - name: Setup Docker Compose run: | curl -sSL "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /tmp/docker-compose sudo install -m755 /tmp/docker-compose "$(dirname $(which docker-compose))" docker version --format 'Docker Engine version v{{.Server.Version}}' docker-compose version + - name: Test (Functional) + run: | + nohup sudo tcpdump -i any -w "/tmp/fvt-kafka-${{ matrix.kafka-version }}.pcap" portrange 29091-29095 >/dev/null 2>&1 & + echo $! >tcpdump.pid make test_functional + - name: Stop tcpdump + if: always() + run: | + if [ -f "tcpdump.pid" ]; then sudo kill "$(cat tcpdump.pid)" || true; fi + if [ -f "/tmp/fvt-kafka-${{ matrix.kafka-version }}.pcap" ]; then chmod a+r "/tmp/fvt-kafka-${{ matrix.kafka-version }}.pcap"; fi + - name: Upload pcap file + if: always() + uses: actions/upload-artifact@v3 + with: + name: fvt-kafka-${{ matrix.kafka-version }}.pcap + path: /tmp/fvt-kafka-${{ matrix.kafka-version }}.pcap + retention-days: 5 + if-no-files-found: ignore