Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
ce0f5ad
Use official datadog GH action to monitor CI visibility
AAraKKe Jan 16, 2026
87d8c6d
Add changelog
AAraKKe Jan 16, 2026
fcdf605
Add some debugging for failing tests
AAraKKe Jan 16, 2026
98ac609
Remove action and ensure ddtrace is a depdnency of the default enviro…
AAraKKe Jan 16, 2026
42effc5
Revert changes for debugging in test_agent_packages
AAraKKe Jan 16, 2026
8f70b27
Remove profiling
AAraKKe Jan 16, 2026
9bd010f
Remove trace analytics
AAraKKe Jan 16, 2026
e387451
Disable subprocess tracing
AAraKKe Jan 16, 2026
7753409
Try removing git metadta gathering
AAraKKe Jan 16, 2026
78e6616
Debug messages to understand git issues
AAraKKe Jan 16, 2026
ca0b7b2
Fix formattingh
AAraKKe Jan 16, 2026
d56f2d3
Fix error in debug code
AAraKKe Jan 16, 2026
9971089
Fix formatting
AAraKKe Jan 16, 2026
ba29c6e
Make sure we unshallwo the repo
AAraKKe Jan 16, 2026
f7de5f6
Also unshallwo for windows setup for ddev
AAraKKe Jan 16, 2026
85bf235
Add test environment name to differentiate between e2e and unit tests
AAraKKe Jan 19, 2026
4a1fffe
Update documentation
AAraKKe Jan 19, 2026
8b5083d
Add ci visibility to e2e tests as well
AAraKKe Jan 19, 2026
b453a1e
Try reducing the size of test-target
AAraKKe Jan 19, 2026
9cc3388
Streamline test-target to reduce the object footprint on actions
AAraKKe Jan 19, 2026
c3aaf5b
Ensure python version set to 3.13 when input is an empty string
AAraKKe Jan 19, 2026
d1c3dcd
Ensure python version is updatable through the py upgrade script
AAraKKe Jan 19, 2026
2e61bfc
Merge branch 'master' into aarakke/improve-ci-visibility
AAraKKe Jan 19, 2026
3475c29
Print actual ddev command run when executing tests
AAraKKe Jan 19, 2026
b2593f7
Update ddev env test command to respect trace enabled option
AAraKKe Jan 19, 2026
5d0756a
Fix update_py_config script patterns
AAraKKe Jan 19, 2026
f84772e
Fix AppEnvVar for enable tracing
AAraKKe Jan 19, 2026
7772a4e
[MOPU-207] Testing AI prompt for monitor template message structure q…
vuvkar Jan 19, 2026
6eff818
[MOPU-207] Fix changelog entry
vuvkar Jan 19, 2026
1d87ade
Merge branch 'master' into vahe.karamyan/mopu-207-another-test-branch
vuvkar Jan 19, 2026
bf9208e
Merge branch 'master' into vahe.karamyan/mopu-207-another-test-branch
vuvkar Jan 20, 2026
e2e2ead
Merge branch 'master' into vahe.karamyan/mopu-207-another-test-branch
vuvkar Jan 26, 2026
2bb6d13
Merge branch 'master' into vahe.karamyan/mopu-207-another-test-branch
vuvkar Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion argo_rollouts/assets/monitors/rollout_phase.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
],
"description": "The Argo Rollout phase is the stage or status of a deployment or rollout process. This monitor tracks the phase of rollouts and alerts when a rollout is in a non running and completed state.",
"definition": {
"message": "{{#is_alert}}\nArgo Rollout {{argo_rollouts_name.name}} from {{argo_rollouts_namespace.name}} namespace is in a {{phase.name}} state for the last 10 minutes.\n{{/is_alert}}\n\n{{#is_recovery}}\nArgo Rollout {{argo_rollouts_name.name}} from {{argo_rollouts_namespace.name}} namespace is back in a stable state.\n{{/is_recovery}}",
"message": "{{#is_alert}}\nArgo Rollout and {{argo_rollouts_name.name}} from {{argo_rollouts_namespace.name}} namespace is in a {{phase.name}} state for the last 10 minutes.\n{{/is_alert}}\n\n{{#is_recovery}}\nArgo Rollout {{argo_rollouts_name.name}} from {{argo_rollouts_namespace.name}} namespace is back in a stable state.\n{{/is_recovery}}",
"name": "[Argo Rollouts] Rollout Phase State",
"options": {
"include_tags": true,
Expand Down
1 change: 1 addition & 0 deletions ddev/changelog.d/22363.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Ensure ddtrace is used with pytest for every package to emit CI visibility tracking by updating the hatch plugin and `ddev env test` command.
65 changes: 65 additions & 0 deletions ddev/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,74 @@ def isolation() -> Generator[Path, None, None]:
def local_clone(isolation, local_repo) -> Generator[ClonedRepo, None, None]:
cloned_repo_path = isolation / local_repo.name

# Debug: Write environment and git info to a file for artifact upload
import os
import subprocess

# Write to multiple locations to ensure we capture the debug info
workspace = os.environ.get('GITHUB_WORKSPACE', os.getcwd())
debug_file = Path(workspace) / 'local_clone_debug.txt'
# Also try writing to the repo root (3 levels up from conftest.py)
repo_root_debug = Path(__file__).resolve().parent.parent.parent.parent / 'local_clone_debug.txt'
debug_lines = []
debug_lines.append('=== DEBUG local_clone fixture ===')
debug_lines.append(f'PYTHONPATH: {os.environ.get("PYTHONPATH", "not set")}')
debug_lines.append(f'DD_TRACE_SUBPROCESS_ENABLED: {os.environ.get("DD_TRACE_SUBPROCESS_ENABLED", "not set")}')
debug_lines.append(f'DDEV_TRACE_ENABLED: {os.environ.get("DDEV_TRACE_ENABLED", "not set")}')
debug_lines.append(f'DD_CIVISIBILITY_ITR_ENABLED: {os.environ.get("DD_CIVISIBILITY_ITR_ENABLED", "not set")}')
debug_lines.append(f'local_repo: {local_repo}')
debug_lines.append(f'cloned_repo_path: {cloned_repo_path}')

# Check if subprocess module is patched
debug_lines.append(f'subprocess.Popen: {subprocess.Popen}')
debug_lines.append(f'subprocess module file: {subprocess.__file__}')

# Check for any git lock files
git_dir = local_repo / '.git'
if git_dir.exists():
lock_files = list(git_dir.glob('*.lock')) + list(git_dir.glob('**/*.lock'))
debug_lines.append(f'Git lock files found: {lock_files}')

# Check if repo is shallow (use subprocess directly to avoid exit on failure)
with local_repo.as_cwd():
try:
result = subprocess.run(['git', 'rev-parse', '--is-shallow-repository'], capture_output=True, text=True)
is_shallow = result.stdout.strip() if result.returncode == 0 else f'error: {result.stderr}'
debug_lines.append(f'Is shallow repository: {is_shallow}')

# Check for partial clone / promisor remote (this config may not exist)
result = subprocess.run(
['git', 'config', '--get', 'remote.origin.promisor'], capture_output=True, text=True
)
promisor = result.stdout.strip() if result.returncode == 0 else 'not configured'
debug_lines.append(f'Promisor remote configured: {promisor}')

# Also check for partial clone filter
result = subprocess.run(
['git', 'config', '--get', 'remote.origin.partialclonefilter'], capture_output=True, text=True
)
partial_filter = result.stdout.strip() if result.returncode == 0 else 'not configured'
debug_lines.append(f'Partial clone filter: {partial_filter}')
except Exception as e:
debug_lines.append(f'Error checking git config: {e}')

# Get the current origin remote url
with local_repo.as_cwd():
origin_url = PLATFORM.check_command_output(['git', 'remote', 'get-url', 'origin']).strip()
debug_lines.append(f'origin_url: {origin_url}')

debug_lines.append(f'Running: git clone --local --shared --no-tags {local_repo} {cloned_repo_path}')

# Write debug info to file (try multiple locations)
for path in [debug_file, repo_root_debug]:
try:
path.write_text('\n'.join(debug_lines))
debug_lines.append(f'Debug file written to: {path}')
except Exception as e:
debug_lines.append(f'Failed to write debug file to {path}: {e}')

# Also print to stdout (will show if test fails)
print('\n'.join(debug_lines))

PLATFORM.check_command_output(
['git', 'clone', '--local', '--shared', '--no-tags', str(local_repo), str(cloned_repo_path)]
Expand Down
Loading