From b4e0554c8e4ec6790a18df2a814d1c730c703298 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 5b8ed844b..59efd2d30 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 lo -w "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 "fvt-kafka-${{ matrix.kafka-version }}.pcap" ]; then sudo chmod a+r "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: fvt-kafka-${{ matrix.kafka-version }}.pcap + retention-days: 5 + if-no-files-found: ignore