Skip to content

Commit

Permalink
[chore] add more Windows versions for testing (#37025)
Browse files Browse the repository at this point in the history
  • Loading branch information
CodePrometheus authored Jan 9, 2025
1 parent dcf42df commit c645253
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 4 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build-and-test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ jobs:
- cmd-0
- cmd-1
- other
runs-on: windows-latest
os: [windows-2022, windows-2025]
runs-on: ${{ matrix.os }}
if: ${{ github.actor != 'dependabot[bot]' && (contains(github.event.pull_request.labels.*.name, 'Run Windows') || github.event_name == 'push' || github.event_name == 'merge_group') }}
env:
# Limit memory usage via GC environment variables to avoid OOM on GH runners, especially for `cmd/otelcontribcol`,
Expand Down
18 changes: 15 additions & 3 deletions .github/workflows/e2e-tests-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ jobs:
- run: echo $(./.github/workflows/scripts/is_changed_file_windows.sh ${{ github.event.pull_request.base.sha }} ${{ github.sha }} )

collector-build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
os: [windows-latest]
runs-on: ${{ matrix.os }}
needs: [windows-file-changed]
if: ${{ github.actor != 'dependabot[bot]' && ((contains(github.event.pull_request.labels.*.name, 'Run Windows') || github.event_name == 'push' || github.event_name == 'merge_group') || needs.windows-file-changed.outputs.changed == 'true') }}
steps:
Expand Down Expand Up @@ -65,7 +69,11 @@ jobs:
path: ./bin/*

supervisor-test:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
runs-on: ${{ matrix.os }}
if: ${{ github.actor != 'dependabot[bot]' && (contains(github.event.pull_request.labels.*.name, 'Run Windows') || github.event_name == 'push' || github.event_name == 'merge_group') }}
needs: [collector-build]
steps:
Expand Down Expand Up @@ -97,7 +105,11 @@ jobs:
go test -v --tags=e2e
windows-supervisor-service-test:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
runs-on: ${{ matrix.os }}
if: ${{ github.actor != 'dependabot[bot]' && (contains(github.event.pull_request.labels.*.name, 'Run Windows') || github.event_name == 'push' || github.event_name == 'merge_group') }}
needs: [collector-build]
steps:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"io"
"net/http"
"net/http/httptest"
"os"
"strconv"
"sync"
"testing"
Expand All @@ -31,6 +32,9 @@ import (
// Test everything works when there is more than one goroutine calling PushMetrics.
// Today we only use 1 worker per exporter, but the intention of this test is to future-proof in case it changes.
func Test_PushMetricsConcurrent(t *testing.T) {
if os.Getenv("ImageOs") == "win25" && os.Getenv("GITHUB_ACTIONS") == "true" {
t.Skip("Skipping test on Windows 2025 GH runners, see https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/37104")
}
n := 1000
ms := make([]pmetric.Metrics, n)
testIDKey := "test_id"
Expand All @@ -52,6 +56,10 @@ func Test_PushMetricsConcurrent(t *testing.T) {
t.Fatal(err)
}
assert.NotNil(t, body)
if len(body) == 0 {
// No content, nothing to do. The request is just checking that the server is up.
return
}
// Receives the http requests and unzip, unmarshalls, and extracts TimeSeries
assert.Equal(t, "0.1.0", r.Header.Get("X-Prometheus-Remote-Write-Version"))
assert.Equal(t, "snappy", r.Header.Get("Content-Encoding"))
Expand Down Expand Up @@ -124,6 +132,13 @@ func Test_PushMetricsConcurrent(t *testing.T) {
require.NoError(t, prwe.Shutdown(ctx))
}()

// Ensure that the test server is up before making the requests
assert.EventuallyWithT(t, func(c *assert.CollectT) {
resp, checkRequestErr := http.Get(server.URL)
require.NoError(c, checkRequestErr)
assert.NoError(c, resp.Body.Close())
}, 5*time.Second, 100*time.Millisecond)

var wg sync.WaitGroup
wg.Add(n)
for _, m := range ms {
Expand Down

0 comments on commit c645253

Please sign in to comment.