Skip to content

Commit

Permalink
Fix flakiness of tests on Windows requiring ports in the dynamic range
Browse files Browse the repository at this point in the history
  • Loading branch information
pjanotti committed Sep 6, 2024
1 parent 95ff5f2 commit 97a9feb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/build-and-test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ jobs:
~\go\pkg\mod
~\AppData\Local\go-build
key: go-build-cache-${{ runner.os }}-${{ matrix.group }}-go-${{ hashFiles('**/go.sum') }}
- name: Ensure required ports in the dynamic range are available
run: |
& ${{ github.workspace }}\.github\workflows\scripts\win-required-ports.ps1
- name: Run Unit tests
run: make -j2 gotest GROUP=${{ matrix.group }}
windows-unittest:
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/scripts/win-required-ports.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<#
.SYNOPSIS
This script ensures that the ports required by the default configuration of the collector are available.
.DESCRIPTION
Certain runs on GitHub Actions sometimes have ports required by the default configuration reserved by other
applications via the WinNAT service.
#>

#Requires -RunAsAdministrator

netsh interface ip show excludedportrange protocol=tcp

Stop-Service winnat

# Only port in the dynamic range that is being, from time to time, reserved by other applications.
netsh interface ip add excludedportrange protocol=tcp startport=55678 numberofports=2

Start-Service winnat

netsh interface ip show excludedportrange protocol=tcp

0 comments on commit 97a9feb

Please sign in to comment.