Skip to content

Commit

Permalink
fix: push correct run id (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
jd authored Feb 13, 2025
1 parent 538db20 commit a3d2e52
Showing 4 changed files with 14 additions and 17 deletions.
2 changes: 1 addition & 1 deletion pytest_mergify/__init__.py
Original file line number Diff line number Diff line change
@@ -65,7 +65,7 @@ def pytest_terminal_summary(

if utils.get_ci_provider() == "github_actions":
terminalreporter.write_line(
f"::notice title=Mergify CI::MERGIFY_TEST_RUN_ID={self.session_span.get_span_context().span_id}",
f"::notice title=Mergify CI::MERGIFY_TEST_RUN_ID={self.mergify_tracer.test_run_id.to_bytes(8, 'big').hex()}",
)

@property
12 changes: 0 additions & 12 deletions pytest_mergify/resources/mergify.py

This file was deleted.

12 changes: 10 additions & 2 deletions pytest_mergify/tracer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import dataclasses
import os
import random

import opentelemetry.sdk.resources
from opentelemetry.sdk.trace import export
@@ -14,7 +15,6 @@
import pytest_mergify.resources.ci as resources_ci
import pytest_mergify.resources.github_actions as resources_gha
import pytest_mergify.resources.pytest as resources_pytest
import pytest_mergify.resources.mergify as resources_mergify


class SynchronousBatchSpanProcessor(export.SimpleSpanProcessor):
@@ -52,6 +52,7 @@ class MergifyTracer:
tracer_provider: opentelemetry.sdk.trace.TracerProvider | None = dataclasses.field(
init=False, default=None
)
test_run_id: int = dataclasses.field(default_factory=lambda: random.getrandbits(64))

def __post_init__(self) -> None:
span_processor: SpanProcessor
@@ -82,13 +83,20 @@ def __post_init__(self) -> None:
resources_gha.GitHubActionsResourceDetector().detect()
resource = opentelemetry.sdk.resources.get_aggregated_resources(
[
resources_mergify.MergifyResourceDetector(),
resources_ci.CIResourceDetector(),
resources_gha.GitHubActionsResourceDetector(),
resources_pytest.PytestResourceDetector(),
]
)

resource = resource.merge(
opentelemetry.sdk.resources.Resource(
{
"test.run.id": self.test_run_id,
}
)
)

self.tracer_provider = TracerProvider(resource=resource)

self.tracer_provider.add_span_processor(span_processor)
5 changes: 3 additions & 2 deletions tests/test_plugin.py
Original file line number Diff line number Diff line change
@@ -47,8 +47,9 @@ def test_foo():
result.assert_outcomes(passed=1)
for line in result.stdout.lines:
if line.startswith("::notice title=Mergify CI::MERGIFY_TEST_RUN_ID="):
notice, title, trace_id = line.split("=", 2)
assert int(trace_id) >= 0
notice, title, test_run_id = line.split("=", 2)
assert len(test_run_id) == 16
assert len(bytes.fromhex(test_run_id)) == 8
break
else:
pytest.fail("No trace id found")

0 comments on commit a3d2e52

Please sign in to comment.