2121# rather than $ARTIFACTS_URL (dev), to build against real tarballs while this
2222# pipeline is still dev-only. Revert to os.environ["ARTIFACTS_URL"] once done.
2323_DEVEL_REPO_ARTIFACTS_URL = "https://ci.mariadb.org"
24+ # x86 worker images are a separate 32-bit tag (e.g. "debian12-386"), not part
25+ # of the amd64/aarch64 multi-arch manifest the other image tags resolve to,
26+ # and need an explicit --platform on pull to fetch that 32-bit variant.
27+ _ARCH_IMAGE_SUFFIX = {"x86" : "-386" }
28+ _ARCH_PLATFORM = {"x86" : "linux/386" }
2429
2530
2631def foundry_scheduler_name (mariadb_version ):
@@ -40,12 +45,14 @@ def foundry_scheduler_name(mariadb_version):
4045 package = f"{ ops } -{ version } "
4146 package_type = package_config ["type" ]
4247 for arch in package_config ["arch" ]:
48+ image = f"{ ops } { version } { _ARCH_IMAGE_SUFFIX .get (arch , '' )} "
49+ platform = _ARCH_PLATFORM .get (arch )
4350 if package_type == "bintar" :
4451 # Bintar builds link against a MariaDB server bintar (see
4552 # autobake.bintar) instead of installing -devel packages from an
4653 # autobake builder's repo, so there's no repo_file_url to build.
4754 sequence = autobake .bintar (
48- docker_config (image = f" { ops } { version } " ),
55+ docker_config (image = image , platform = platform ),
4956 package_config ["ci_bintar_builder" ],
5057 )
5158 else :
@@ -61,7 +68,9 @@ def foundry_scheduler_name(mariadb_version):
6168 repo_file_url = (
6269 f"{ _DEVEL_REPO_ARTIFACTS_URL } /%(prop:tarbuildnum)s/{ autobake_builder } /{ repo_file } "
6370 )
64- sequence = sequence_fn (docker_config (image = f"{ ops } { version } " ), repo_file_url )
71+ sequence = sequence_fn (
72+ docker_config (image = image , platform = platform ), repo_file_url
73+ )
6574 builder = GenericBuilder (
6675 name = f"foundry-{ arch } -{ ops } -{ version } " ,
6776 sequences = [sequence ],
0 commit comments