diff --git a/ddev/CHANGELOG.md b/ddev/CHANGELOG.md index bb1fd57b7159f..188b76067c7bd 100644 --- a/ddev/CHANGELOG.md +++ b/ddev/CHANGELOG.md @@ -9,6 +9,7 @@ ***Fixed***: * Output changelog to stdout instead of stderr on `ddev release agent changelog` ([#15548](https://github.com/DataDog/integrations-core/pull/15548)) +* Fix CI validation ([#15560](https://github.com/DataDog/integrations-core/pull/15560)) ## 3.4.0 / 2023-08-10 diff --git a/ddev/src/ddev/cli/validate/ci.py b/ddev/src/ddev/cli/validate/ci.py index 3325428666a5b..c66d78cb9ee8f 100644 --- a/ddev/src/ddev/cli/validate/ci.py +++ b/ddev/src/ddev/cli/validate/ci.py @@ -179,7 +179,14 @@ def ci(app: Application, sync: bool): if check_name in cached_display_names: display_name = cached_display_names[check_name].replace(' ', '_') else: - integration = app.repo.integrations.get(check_name) + try: + integration = app.repo.integrations.get(check_name) + except OSError as e: + if str(e).startswith('Integration does not exist: '): + continue + + raise + display_name = integration.display_name display_name = display_name.replace(' ', '_') cached_display_names[check_name] = display_name @@ -199,12 +206,10 @@ def ci(app: Application, sync: bool): error_message += message # This works because we ensure there is a 1 to 1 correspondence between projects and checks (flags) - if app.repo.config.get('/overrides/ci/hyperv'): - ignored_missing_jobs: set = {'hyperv'} - else: - ignored_missing_jobs = set() - # ignored_missing_jobs = set(app.repo.config.get('/overrides/validate/ci/exclude', [])) - missing_projects = testable_checks - set(defined_checks) - ignored_missing_jobs + excluded_jobs = { + name for name, config in app.repo.config.get('/overrides/ci', {}).items() if config.get('exclude', False) + } + missing_projects = testable_checks - set(defined_checks) - excluded_jobs not_agent_checks = set() for check in set(missing_projects): @@ -264,7 +269,7 @@ def ci(app: Application, sync: bool): success = False error_message += message - missing_flags = testable_checks - set(defined_checks) - ignored_missing_jobs + missing_flags = testable_checks - set(defined_checks) - excluded_jobs for check in set(missing_flags): if check in not_agent_checks or not code_coverage_enabled(check, app): missing_flags.discard(check)