Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ jobs:
toxenv: ${{fromJson(needs.gentestmatrix.outputs.matrix)}}
os_version:
- 15.7
- "16.0"
- "tumbleweed"
include:
- toxenv: fips
Expand Down
69 changes: 39 additions & 30 deletions bci_tester/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@
)

# Test Language and Application containers by default for these versions
_DEFAULT_NONBASE_SLE_VERSIONS = ("15.7",)
_DEFAULT_NONBASE_SLE_VERSIONS = ("15.7", "16.0")

# Test Language and Application containers by default for these versions
_DEFAULT_NONBASE_OS_VERSIONS = ("15.7", "tumbleweed")
_DEFAULT_NONBASE_OS_VERSIONS = ("15.7", "16.0", "tumbleweed")

# Test base containers by default for these versions
_DEFAULT_BASE_OS_VERSIONS = ("15.6", "15.7", "16.0", "tumbleweed")
Expand Down Expand Up @@ -546,13 +546,21 @@ def create_BCI(
create_BCI(
build_tag=f"{BCI_CONTAINER_PREFIX}/golang:{golang_version}",
extra_marks=[pytest.mark.__getattr__(f"golang_{stability}")],
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
)
for golang_version, stability in (
("oldstable-openssl", "oldstable"),
("stable-openssl", "stable"),
)
]
+ [
create_BCI(
build_tag=f"{BCI_CONTAINER_PREFIX}/golang:{stability}",
extra_marks=[pytest.mark.__getattr__(f"golang_{stability}")],
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
)
for stability in ("oldstable", "stable")
]
+ [
create_BCI(
build_tag=f"{BCI_CONTAINER_PREFIX}/golang:{golang_version}",
Expand Down Expand Up @@ -584,11 +592,11 @@ def create_BCI(
)
OPENJDK_17_CONTAINER = create_BCI(
build_tag="bci/openjdk:17",
available_versions=_DEFAULT_NONBASE_OS_VERSIONS,
available_versions=("15.7", "tumbleweed"),
)
OPENJDK_DEVEL_17_CONTAINER = create_BCI(
build_tag="bci/openjdk-devel:17",
available_versions=_DEFAULT_NONBASE_OS_VERSIONS,
available_versions=("15.7", "tumbleweed"),
custom_entry_point="/bin/sh",
)
OPENJDK_21_CONTAINER = create_BCI(
Expand Down Expand Up @@ -643,7 +651,7 @@ def create_BCI(
)
for ver, versions in (
("3.12", ["15.6", "tumbleweed"]),
("3.13", ["15.7", "tumbleweed"]),
("3.13", ["15.7", "16.0", "tumbleweed"]),
)
]

Expand All @@ -653,17 +661,17 @@ def create_BCI(
available_versions=versions,
)
for ver, versions in (
("3.6", _DEFAULT_NONBASE_SLE_VERSIONS),
("3.11", _DEFAULT_NONBASE_OS_VERSIONS),
("3.6", ("15.7",)),
("3.11", ("15.7", "tumbleweed")),
)
]

RUBY_25_CONTAINER = create_BCI(
build_tag="bci/ruby:2.5", available_versions=_DEFAULT_NONBASE_SLE_VERSIONS
build_tag="bci/ruby:2.5", available_versions=("15.7",)
)

RUBY_34_CONTAINER = create_BCI(
build_tag="bci/ruby:3.4", available_versions=["15.7"]
build_tag="bci/ruby:3.4", available_versions=_DEFAULT_NONBASE_SLE_VERSIONS
)

RUBY_LATEST_CONTAINER = create_BCI(
Expand All @@ -679,32 +687,32 @@ def create_BCI(

DOTNET_SDK_8_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-sdk:8.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)
DOTNET_SDK_9_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-sdk:9.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)
DOTNET_ASPNET_8_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-aspnet:8.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)
DOTNET_ASPNET_9_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-aspnet:9.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)
DOTNET_RUNTIME_8_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-runtime:8.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)
DOTNET_RUNTIME_9_0_CONTAINER = create_BCI(
build_tag="bci/dotnet-runtime:9.0",
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
extra_marks=(_DOTNET_SKIP_ARCH_MARK,),
)

Expand Down Expand Up @@ -854,11 +862,8 @@ def create_BCI(
),
)

if OS_VERSION in (
"15.6",
"15.7",
):
_GIT_APP_VERSION = "2.51"
if OS_VERSION in ("15.6", "15.7", "16.0"):
_GIT_APP_VERSION = "2"
elif OS_VERSION in ("15.5", "15.4"):
_GIT_APP_VERSION = "2.35"
else:
Expand Down Expand Up @@ -886,7 +891,11 @@ def create_BCI(
)
]

_NGINX_APP_VERSION = "latest" if OS_VERSION == "tumbleweed" else "1.21"
_NGINX_APP_VERSION = "latest"
if OS_VERSION in ("16.0",):
_NGINX_APP_VERSION = "1.27"
elif OS_VERSION in ("15.7",):
_NGINX_APP_VERSION = "1.21"

NGINX_CONTAINER = create_BCI(
build_tag=f"{APP_CONTAINER_PREFIX}/nginx:{_NGINX_APP_VERSION}",
Expand Down Expand Up @@ -940,7 +949,7 @@ def create_BCI(
)
for gcc_version, os_versions in (
(13, ("tumbleweed",)),
(14, _DEFAULT_NONBASE_OS_VERSIONS),
(14, ("15.7", "tumbleweed")),
(15, ("16.0", "tumbleweed")),
)
]
Expand Down Expand Up @@ -1008,7 +1017,7 @@ def create_BCI(
available_versions=versions,
)
for tag, versions in (
("0.26", _DEFAULT_NONBASE_SLE_VERSIONS),
("0.26", ("15.7",)),
("latest", ("tumbleweed",)),
)
]
Expand All @@ -1021,7 +1030,7 @@ def create_BCI(
available_versions=versions,
)
for tag, versions in (
("0.26", _DEFAULT_NONBASE_SLE_VERSIONS),
("0.26", ("15.7",)),
("latest", ("tumbleweed",)),
)
]
Expand All @@ -1033,7 +1042,7 @@ def create_BCI(
forwarded_ports=[PortForwarding(container_port=3000)],
available_versions=versions,
)
for tag, versions in (("11", _DEFAULT_NONBASE_OS_VERSIONS),)
for tag, versions in (("11", ("15.7", "tumbleweed")),)
]

OLLAMA_CONTAINER = create_BCI(
Expand Down Expand Up @@ -1141,7 +1150,7 @@ def create_BCI(
create_BCI(
build_tag=f"{APP_CONTAINER_PREFIX}/kiosk/firefox-esr:esr",
bci_type=ImageType.APPLICATION,
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
custom_entry_point="/bin/sh",
)
]
Expand All @@ -1150,7 +1159,7 @@ def create_BCI(
create_BCI(
build_tag=f"{APP_CONTAINER_PREFIX}/kiosk/pulseaudio:17",
bci_type=ImageType.APPLICATION,
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
custom_entry_point="/bin/sh",
)
]
Expand All @@ -1159,7 +1168,7 @@ def create_BCI(
create_BCI(
build_tag=f"{APP_CONTAINER_PREFIX}/kiosk/xorg:21",
bci_type=ImageType.APPLICATION,
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
custom_entry_point="/bin/sh",
)
]
Expand All @@ -1168,7 +1177,7 @@ def create_BCI(
create_BCI(
build_tag=f"{APP_CONTAINER_PREFIX}/kiosk/xorg-client:21",
bci_type=ImageType.APPLICATION,
available_versions=_DEFAULT_NONBASE_SLE_VERSIONS,
available_versions=("15.7",),
custom_entry_point="/bin/sh",
)
]
Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ markers = [
'gcc_13',
'gcc_14',
'gcc_15',
'git_2',
'git_2.35',
'git_2.43',
'git_2.51',
Expand All @@ -99,6 +100,7 @@ markers = [
'helm_latest',
'milvus_2.4',
'nginx_1.21',
'nginx_1.27',
'nginx_latest',
'golang_oldstable',
'golang_oldstable-openssl',
Expand Down
36 changes: 19 additions & 17 deletions tests/test_busybox.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,29 @@ def test_busybox_provides_sh(auto_container):
)


#: size limits of the micro image per architecture in MiB
BUSYBOX_IMAGE_MAX_SIZE: Dict[str, int] = {
"x86_64": 16 if OS_VERSION == "tumbleweed" else 13,
"aarch64": 16 if OS_VERSION == "tumbleweed" else 13,
"s390x": 16 if OS_VERSION == "tumbleweed" else 13,
"ppc64le": 16 if OS_VERSION == "tumbleweed" else 13,
}


@pytest.mark.parametrize(
"container,size",
[(BUSYBOX_CONTAINER, BUSYBOX_IMAGE_MAX_SIZE)],
"container",
[BUSYBOX_CONTAINER],
indirect=["container"],
)
def test_busybox_image_size(
container, size: Dict[str, int], container_runtime
):
"""Check that the size of the busybox container is below the limits
specified in :py:const:`BUSYBOX_IMAGE_MAX_SIZE`.
def test_busybox_image_size(container, container_runtime):
"""Check that the size of the busybox container is below the accepted limits."""

size: Dict[str, int] = {
"x86_64": 16 if OS_VERSION == "tumbleweed" else 13,
"aarch64": 16 if OS_VERSION == "tumbleweed" else 13,
"s390x": 16 if OS_VERSION == "tumbleweed" else 13,
"ppc64le": 16 if OS_VERSION == "tumbleweed" else 13,
}

if OS_VERSION.startswith("16"):
size = {
"x86_64": 14,
"aarch64": 14,
"s390x": 14,
"ppc64le": 14,
}

"""
container_size = container_runtime.get_image_size(
container.image_url_or_id
) // (1024 * 1024)
Expand Down
Loading