@@ -110,9 +110,17 @@ def expand_default_triples(
110110 """
111111 default_triples = set (pull_request_defaults ["targets" ])
112112
113- expand_platform = "all" in labels .get ("platform" , set ())
114- expand_arch = "all" in labels .get ("arch" , set ())
115- expand_libc = "all" in labels .get ("libc" , set ())
113+ platform_labels = labels .get ("platform" , set ())
114+ arch_labels = labels .get ("arch" , set ())
115+ libc_labels = labels .get ("libc" , set ())
116+
117+ platform_filters = platform_labels - {"all" }
118+ arch_filters = arch_labels - {"all" }
119+ libc_filters = libc_labels - {"all" }
120+
121+ expand_platform = "all" in platform_labels or bool (platform_filters )
122+ expand_arch = "all" in arch_labels or bool (arch_filters )
123+ expand_libc = "all" in libc_labels or bool (libc_filters )
116124
117125 if not (expand_platform or expand_arch or expand_libc ):
118126 return default_triples
@@ -136,14 +144,27 @@ def expand_default_triples(
136144 for platform , platform_config in ci_config .items ():
137145 for triple , config in platform_config .items ():
138146 for d_platform , d_arch , d_arch_variant , d_libc in default_attrs :
139- if not expand_platform and platform != d_platform :
147+ if platform_filters :
148+ if platform not in platform_filters :
149+ continue
150+ elif "all" not in platform_labels and platform != d_platform :
140151 continue
141- if not expand_arch and (
152+
153+ if arch_filters :
154+ if config ["arch" ] not in arch_filters :
155+ continue
156+ if config .get ("arch_variant" ) != d_arch_variant :
157+ continue
158+ elif "all" not in arch_labels and (
142159 config ["arch" ] != d_arch
143160 or config .get ("arch_variant" ) != d_arch_variant
144161 ):
145162 continue
146- if not expand_libc and config .get ("libc" ) != d_libc :
163+
164+ if libc_filters :
165+ if config .get ("libc" ) not in libc_filters :
166+ continue
167+ elif "all" not in libc_labels and config .get ("libc" ) != d_libc :
147168 continue
148169 allowed .add (triple )
149170 break
0 commit comments