diff --git a/ci/jobs/scripts/workflow_hooks/filter_job.py b/ci/jobs/scripts/workflow_hooks/filter_job.py index 97e6ea6799a8..650b91aaf21d 100644 --- a/ci/jobs/scripts/workflow_hooks/filter_job.py +++ b/ci/jobs/scripts/workflow_hooks/filter_job.py @@ -6,6 +6,7 @@ ) from ci.jobs.scripts.workflow_hooks.pr_description import Labels from ci.praktika.info import Info +from ci.praktika.settings import Settings def only_docs(changed_files): @@ -48,6 +49,19 @@ def only_docs(changed_files): _info_cache = None +DOCKER_REQUIRED_ARM_JOBS = { + "Build (arm_release)", + Settings.DOCKER_BUILD_ARM_LINUX_JOB_NAME, + Settings.DOCKER_BUILD_MANIFEST_JOB_NAME, +} + + +def is_ci_excluded_by_tag(job_name, tag): + if tag in ("aarch64", "arm") and job_name in DOCKER_REQUIRED_ARM_JOBS: + return False + + return tag in job_name.lower() + def should_skip_job(job_name): global _info_cache @@ -178,7 +192,7 @@ def should_skip_job(job_name): ci_exclude_tags = _info_cache.get_kv_data("ci_exclude_tags") or [] for tag in ci_exclude_tags: - if tag in job_name: + if is_ci_excluded_by_tag(job_name, tag): return True, f"Skipped, job name includes excluded tag '{tag}'" return False, ""