Skip to content

[POC] Run Go parametric tests on Buildbarn without Docker - #7498

Draft
pawelchcki wants to merge 4 commits into
mainfrom
poc/buildbarn-go-parametric
Draft

[POC] Run Go parametric tests on Buildbarn without Docker#7498
pawelchcki wants to merge 4 commits into
mainfrom
poc/buildbarn-go-parametric

Conversation

@pawelchcki

@pawelchcki pawelchcki commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Prototype running the Go parametric suite on shared Buildbarn workers without Docker, a Docker socket, worker internet access, or preinstalled repository tooling.

Changes

  • Add a hermetic Bazel workspace with pinned Go, Python, PRoot, test-agent, and rules_itest dependencies.
  • Add a process-backed parametric runtime that preserves the existing Docker fixture API where practical.
  • Run the Go 2.4 parametric suite across 32 pytest-split shards using least-duration grouping.
  • Run the test agent as a rules_itest service and pass its assigned APM/OTLP ports to the process runtime.
  • Build AppSec support into the Go artifact so ASM_ACTIVATION capability checks reflect the production tracer.
  • Add a PRoot smoke test and process-runtime unit coverage.
  • Document the Buildbarn workflow while leaving the existing Docker workflow as the default.

Validation

  • bazelisk test //... --config=buildbarn --jobs=1999 — passed (invocation 1a0e4160-412f-4f41-a4fd-7873c6090f4d).
  • 32-shard Go run — passed in 181.2s wall time; shard execution ranged from 28.6s to 49.5s (invocation dc5cf635-45e3-414e-ac2e-221bbe2b2941). Shared-pool queueing made total wall time slower than the 16-shard baseline despite the shorter shard tail.
  • 16-shard baseline — passed in 147.3s wall time; shard execution ranged from 55.3s to 79.1s (invocation aa324b02-b143-4b86-afdb-686a963bcfa8).
  • PRoot smoke test — passed (invocation a8f8d847-4ccf-4b17-8285-1a9e33cc34fd).
  • Ruff, Buildifier, and focused process-runtime tests passed locally.

Notes

This is intentionally a draft POC. The main review questions are whether Buildbarn is the desired execution environment, whether the process-backed fixture abstraction is acceptable, and how dependency/version ownership should work before productionizing it.

Reviewer checklist

  • Framework changes have approval from the R&P team.
  • Test/runtime behavior is acceptable to the Go tracer owners.
  • Buildbarn ownership and support expectations are agreed.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

.bazelrc                                                                @DataDog/system-tests-core
.bazelversion                                                           @DataDog/system-tests-core
BUILD.bazel                                                             @DataDog/system-tests-core
MODULE.bazel                                                            @DataDog/system-tests-core
MODULE.bazel.lock                                                       @DataDog/system-tests-core
bazel/__init__.py                                                       @DataDog/system-tests-core
bazel/parametric/BUILD.bazel                                            @DataDog/system-tests-core
bazel/parametric/__init__.py                                            @DataDog/system-tests-core
bazel/parametric/configuration.py                                       @DataDog/system-tests-core
bazel/parametric/go_test_durations.json                                 @DataDog/system-tests-core
bazel/parametric/proot_smoke.go                                         @DataDog/system-tests-core
bazel/parametric/proot_smoke.py                                         @DataDog/system-tests-core
bazel/parametric/python_archive_smoke.py                                @DataDog/system-tests-core
bazel/parametric/python_server.py                                       @DataDog/system-tests-core
bazel/parametric/python_test_durations.json                             @DataDog/system-tests-core
bazel/parametric/runner.py                                              @DataDog/system-tests-core
bazel/parametric/sharding.py                                            @DataDog/system-tests-core
bazel/parametric/sharding_test.py                                       @DataDog/system-tests-core
bazel/parametric/test_agent.py                                          @DataDog/system-tests-core
bazel/parametric/update_durations.py                                    @DataDog/system-tests-core
bazel/platforms/BUILD.bazel                                             @DataDog/system-tests-core
bazel/requirements/BUILD.bazel                                          @DataDog/system-tests-core
bazel/requirements/python_parametric.in                                 @DataDog/system-tests-core
bazel/requirements/python_parametric.txt                                @DataDog/system-tests-core
bazel/requirements/runner-overrides.txt                                 @DataDog/system-tests-core
bazel/requirements/runner.txt                                           @DataDog/system-tests-core
bazel/requirements/test_agent.txt                                       @DataDog/system-tests-core
tests/test_the_test/test_parametric_process.py                          @DataDog/system-tests-core
utils/build/docker/golang/parametric/BUILD.bazel                        @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/main_v2_4.go                       @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/python/parametric/BUILD.bazel                        @DataDog/apm-python @DataDog/asm-python @DataDog/system-tests-core
utils/parametric/__init__.py                                            @DataDog/system-tests-core
utils/parametric/process.py                                             @DataDog/system-tests-core
.gitignore                                                              @DataDog/system-tests-core
conftest.py                                                             @DataDog/system-tests-core
docs/understand/scenarios/parametric.md                                 @DataDog/system-tests-core
manifests/golang.yml                                                    @DataDog/dd-trace-go-guild
tests/parametric/conftest.py                                            @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_config_consistency.py                             @DataDog/apm-sdk-capabilities
tests/parametric/test_crashtracking.py                                  @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_llm_observability/test_llm_observability_dne.py   @DataDog/ml-observability @DataDog/system-tests-core
tests/parametric/test_otel_logs.py                                      @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_otel_metrics.py                                   @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_otlp_trace_metrics.py                             @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_process_discovery.py                              @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_startup_logs.py                                   @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_telemetry.py                                      @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
utils/_context/_scenarios/parametric.py                                 @DataDog/system-tests-core
utils/build/docker/golang/parametric/go.mod                             @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/go.sum                             @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/main.go                            @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/otel_metrics.go                    @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/docker_fixtures/_test_agent.py                                    @DataDog/system-tests-core
utils/docker_fixtures/_test_clients/_test_client_parametric.py          @DataDog/system-tests-core

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 12, 2026

Copy link
Copy Markdown

Pipelines  Tests

⚠️ Warnings

🚦 3 Pipeline jobs failed

Testing the test | System Tests (java, prod) / End-to-end #1 / vertx4 1   View in Datadog   GitHub Actions

See error MySQL container failed to start: 'Container mysqldb can't be started'.

Testing the test | System Tests (nodejs, dev) / End-to-end #2 / nextjs 2   View in Datadog   GitHub Actions

Testing the test | all-jobs-are-green   View in Datadog   GitHub Actions

See error Some CI checks or statuses failed during execution.

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 4c6a9ee | Docs | Datadog PR Page | Give us feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant