diff --git a/data/containers/patches.yaml b/data/containers/patches.yaml index 159aa99b1691..6e70f0983d7c 100644 --- a/data/containers/patches.yaml +++ b/data/containers/patches.yaml @@ -69,6 +69,7 @@ docker-py: # https://github.com/docker/docker-py/pull/3373 - test_create_with_ipv6_address: enable IPv6 # https://github.com/docker/docker-py/pull/3380 - integration: Remove test_build_squash tests # https://github.com/docker/docker-py/pull/3393 - tests: Make stream assertions robust to chunk splitting + # https://github.com/docker/docker-py/pull/3407 - Fix integration tests on non-amd64 hosts 3261: 3290: 3354: @@ -79,6 +80,7 @@ docker-py: 3373: 3380: 3393: + 3407: moby: # https://github.com/moby/moby/pull/51219 - integration/container: Make tests runnable on SELinux enabled daemon diff --git a/data/containers/patches/docker-py/3407.patch b/data/containers/patches/docker-py/3407.patch new file mode 100644 index 000000000000..9dd76bbbe488 --- /dev/null +++ b/data/containers/patches/docker-py/3407.patch @@ -0,0 +1,94 @@ +From 9e9f8ff315fe405d7f7e89b394d6269217c51dfe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= +Date: Tue, 2 Jun 2026 19:56:25 +0200 +Subject: [PATCH 1/2] Skip tests incompatible with host architecture +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Don't run tests that run native amd64 binaries on hosts with other +architectures. + +Signed-off-by: Paweł Gronowski +--- + tests/integration/api_plugin_test.py | 5 +++++ + tests/integration/credentials/store_test.py | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/tests/integration/api_plugin_test.py b/tests/integration/api_plugin_test.py +index 168c81b231..cc5c8d3d2e 100644 +--- a/tests/integration/api_plugin_test.py ++++ b/tests/integration/api_plugin_test.py +@@ -1,4 +1,5 @@ + import os ++import platform + + import pytest + +@@ -11,6 +12,10 @@ + + + @requires_api_version('1.25') ++@pytest.mark.skipif( ++ platform.machine().lower() not in ('amd64', 'x86_64'), ++ reason='vieux/sshfs plugin is only supported on amd64', ++) + class PluginTest(BaseAPIIntegrationTest): + @classmethod + def teardown_class(cls): +diff --git a/tests/integration/credentials/store_test.py b/tests/integration/credentials/store_test.py +index e1eba33a18..a9cb51469c 100644 +--- a/tests/integration/credentials/store_test.py ++++ b/tests/integration/credentials/store_test.py +@@ -1,4 +1,5 @@ + import os ++import platform + import random + import shutil + import sys +@@ -14,6 +15,10 @@ + ) + + ++@pytest.mark.skipif( ++ platform.machine().lower() not in ('amd64', 'x86_64'), ++ reason='docker-credential-pass test helper is only supported on amd64', ++) + class TestStore: + def teardown_method(self): + for server in self.tmp_keys: + +From 9b4b9b8461966e5b54638490e66c91e45f25ea19 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= +Date: Tue, 2 Jun 2026 20:08:45 +0200 +Subject: [PATCH 2/2] gha: Add arm64 integration CI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Paweł Gronowski +--- + .github/workflows/ci.yml | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml +index 50727826b7..dac54e8c25 100644 +--- a/.github/workflows/ci.yml ++++ b/.github/workflows/ci.yml +@@ -70,3 +70,16 @@ jobs: + docker logout + rm -rf ~/.docker + make ${{ matrix.variant }} ++ ++ arm64-integration-tests: ++ runs-on: ubuntu-24.04-arm ++ steps: ++ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 ++ with: ++ fetch-depth: 0 ++ fetch-tags: true ++ - name: make integration-dind ++ run: | ++ docker logout ++ rm -rf ~/.docker ++ make integration-dind diff --git a/tests/containers/python_docker.pm b/tests/containers/python_docker.pm index b158420d59a5..bd7336efdb68 100644 --- a/tests/containers/python_docker.pm +++ b/tests/containers/python_docker.pm @@ -13,7 +13,6 @@ use serial_terminal qw(select_serial_terminal); use version_utils; use version; use utils; -use Utils::Architectures qw(is_x86_64); use containers::bats; my $api_version; @@ -58,8 +57,6 @@ sub test ($target) { "tests/integration/api_swarm_test.py", "tests/integration/models_swarm_test.py" ); - # This test uses the vieux/sshfs plugin which doesn't seem to be available for other arches - push @ignore, "tests/integration/api_plugin_test.py" unless is_x86_64; my $ignore = join " ", map { "--ignore=$_" } @ignore; # Used by pytest to ignore individual tests