From fc15777f0e40bfd6a59a24f1ac964a0a712fc914 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Mon, 9 Feb 2026 20:50:08 -0700 Subject: [PATCH 01/20] feat:add multi arch build in gh workflow --- .github/workflows/integration-tests.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 637db26..23e4d2a 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -22,8 +22,20 @@ jobs: python -m pip install --upgrade pip pip install -r mcp-local/tests/requirements.txt + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build MCP Docker image - run: docker buildx build -f mcp-local/Dockerfile -t arm-mcp . + run: | + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -f mcp-local/Dockerfile \ + -t arm-mcp:latest \ + --load \ + . - name: Run integration tests env: From 4c500e5123bb3df8b38483d742f6cb0d0990439e Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Mon, 9 Feb 2026 21:05:29 -0700 Subject: [PATCH 02/20] fix: implement matrix strategy for multi arch build --- .github/workflows/integration-tests.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 23e4d2a..a45c87c 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -6,7 +6,14 @@ on: jobs: integration-tests: - runs-on: ubuntu-24.04-arm + strategy: + matrix: + include: + - runner: ubuntu-24.04 + platform: linux/amd64 + - runner: ubuntu-24.04-arm + platform: linux/arm64 + runs-on: ${{ matrix.runner }} steps: - name: Checkout uses: actions/checkout@v4 @@ -22,16 +29,13 @@ jobs: python -m pip install --upgrade pip pip install -r mcp-local/tests/requirements.txt - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build MCP Docker image run: | docker buildx build \ - --platform linux/amd64,linux/arm64 \ + --platform ${{ matrix.platform }} \ -f mcp-local/Dockerfile \ -t arm-mcp:latest \ --load \ From a8fa815a0d679d77b3fbed1a7a20db41c654ce8b Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Mon, 9 Feb 2026 21:47:51 -0700 Subject: [PATCH 03/20] fix: all jobs run to completion regardless of failures --- .github/workflows/integration-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index a45c87c..b243223 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -7,6 +7,7 @@ on: jobs: integration-tests: strategy: + fail-fast: false matrix: include: - runner: ubuntu-24.04 From d0d0e1677fe59d4fe86116b629a61a82b466cc4d Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 08:31:56 -0700 Subject: [PATCH 04/20] fix: save disk space --- .github/workflows/integration-tests.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index b243223..5bfb0ff 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -30,6 +30,15 @@ jobs: python -m pip install --upgrade pip pip install -r mcp-local/tests/requirements.txt + - name: Free disk space + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf /opt/hostedtoolcache/CodeQL + docker system prune -af + df -h + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From 48dd1f656a5c98865ad081dba8cb99d8e0ff7598 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 09:47:35 -0700 Subject: [PATCH 05/20] fix: remove architecture check --- mcp-local/tests/test_mcp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mcp-local/tests/test_mcp.py b/mcp-local/tests/test_mcp.py index 0aa3cae..64fcbfe 100644 --- a/mcp-local/tests/test_mcp.py +++ b/mcp-local/tests/test_mcp.py @@ -132,10 +132,10 @@ def _read_response(expected_id: int, timeout: float = 10.0) -> dict: #Check Skopeo Tool Test raw_socket.sendall(_encode_mcp_message(constants.CHECK_SKOPEO_REQUEST)) check_skopeo_response = _read_response(3, timeout=60) - actual_architecture = json.loads(check_skopeo_response.get("result")["structuredContent"]["stdout"]).get("Architecture") + #actual_architecture = json.loads(check_skopeo_response.get("result")["structuredContent"]["stdout"]).get("Architecture") actual_os = json.loads(check_skopeo_response.get("result")["structuredContent"]["stdout"]).get("Os") actual_status = check_skopeo_response.get("result")["structuredContent"].get("status") - assert actual_architecture == json.loads(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["stdout"]).get("Architecture"), "Test Failed: MCP check_skopeo tool failed: Architecture mismatch. Expected: {}, Received: {}".format(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["Architecture"], actual_architecture) + #assert actual_architecture == json.loads(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["stdout"]).get("Architecture"), "Test Failed: MCP check_skopeo tool failed: Architecture mismatch. Expected: {}, Received: {}".format(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["Architecture"], actual_architecture) assert actual_os == json.loads(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["stdout"]).get("Os"), "Test Failed: MCP check_skopeo tool failed: Os mismatch. Expected: {}, Received: {}".format(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["Os"], actual_os) assert actual_status == constants.EXPECTED_CHECK_SKOPEO_RESPONSE["status"], "Test Failed: MCP check_skopeo tool failed: Status mismatch. Expected: {}, Received: {}".format(constants.EXPECTED_CHECK_SKOPEO_RESPONSE["status"], actual_status) print("\n***Test Passed: MCP check_skopeo tool succeeded") From f2492dd8708685a05a7e0424f9fa472c3b24a36e Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 11:13:15 -0700 Subject: [PATCH 06/20] fix: space issue --- .github/workflows/integration-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 5bfb0ff..5c1810e 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -36,6 +36,8 @@ jobs: sudo rm -rf /usr/local/lib/android sudo rm -rf /opt/ghc sudo rm -rf /opt/hostedtoolcache/CodeQL + sudo rm -rf /usr/share/swift + sudo rm -rf /usr/local/.ghcup docker system prune -af df -h From bacfeb8b115b301eb1283a01dad90f18afbac415 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 13:08:21 -0700 Subject: [PATCH 07/20] fix: space issues --- .github/workflows/integration-tests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 5c1810e..2910265 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -38,7 +38,10 @@ jobs: sudo rm -rf /opt/hostedtoolcache/CodeQL sudo rm -rf /usr/share/swift sudo rm -rf /usr/local/.ghcup - docker system prune -af + sudo apt-get autoremove -y + sudo apt-get clean + rm -rf ~/.cache/* + docker system prune -af --volumes df -h - name: Set up Docker Buildx From ea8faca4f1478c3435df31153f29134c2075a9a2 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 13:44:15 -0700 Subject: [PATCH 08/20] fix: rm cache --- .github/workflows/integration-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 2910265..7f15fc7 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -40,7 +40,6 @@ jobs: sudo rm -rf /usr/local/.ghcup sudo apt-get autoremove -y sudo apt-get clean - rm -rf ~/.cache/* docker system prune -af --volumes df -h From fbad51a002d2d1399029ea0fe56fa4cb8e232885 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 14:58:01 -0700 Subject: [PATCH 09/20] test: mca response for amd64 --- mcp-local/tests/test_mcp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mcp-local/tests/test_mcp.py b/mcp-local/tests/test_mcp.py index 64fcbfe..4ce22c9 100644 --- a/mcp-local/tests/test_mcp.py +++ b/mcp-local/tests/test_mcp.py @@ -163,6 +163,7 @@ def _read_response(expected_id: int, timeout: float = 10.0) -> dict: #Check MCA Tool Test raw_socket.sendall(_encode_mcp_message(constants.CHECK_MCA_TOOL_REQUEST)) check_mca_response = _read_response(7, timeout=60) + print("\n***MCA Tool Response: ", json.dumps(check_mca_response.get("result")["structuredContent"], indent=2)) assert check_mca_response.get("result")["structuredContent"]["status"] == constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS, "Test Failed: MCP mca tool failed: status mismatch.Expected: {}, Received: {}".format(json.dumps(constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS,indent=2), json.dumps(check_mca_response.get("result")["structuredContent"]["status"],indent=2)) print("\n***Test Passed: MCP mca tool succeeded") From 33bc7a3e41267d6f577f3ae74765004e597903fa Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 15:35:33 -0700 Subject: [PATCH 10/20] test: x86 build --- .github/workflows/integration-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 7f15fc7..1bcfc03 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -12,8 +12,8 @@ jobs: include: - runner: ubuntu-24.04 platform: linux/amd64 - - runner: ubuntu-24.04-arm - platform: linux/arm64 + #- runner: ubuntu-24.04-arm + # platform: linux/arm64 runs-on: ${{ matrix.runner }} steps: - name: Checkout From 6c6673ba766ec0369c834211d4a736c7cb9b184f Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 21:29:41 -0700 Subject: [PATCH 11/20] test: change runner --- .github/workflows/integration-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 1bcfc03..4582cf8 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: include: - - runner: ubuntu-24.04 + - runner: ubuntu-latest platform: linux/amd64 #- runner: ubuntu-24.04-arm # platform: linux/arm64 From 68fc3fd30282f8d76b31f6ed067030be3e8de90b Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Tue, 10 Feb 2026 22:31:32 -0700 Subject: [PATCH 12/20] test: replace load with output --- .github/workflows/integration-tests.yml | 6 ++++-- mcp-local/.dockerignore | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 mcp-local/.dockerignore diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 4582cf8..1335840 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: include: - - runner: ubuntu-latest + - runner: ubuntu-24.04 platform: linux/amd64 #- runner: ubuntu-24.04-arm # platform: linux/arm64 @@ -52,7 +52,9 @@ jobs: --platform ${{ matrix.platform }} \ -f mcp-local/Dockerfile \ -t arm-mcp:latest \ - --load \ + --output type=docker \ + --cache-from type=gha \ + --cache-to type=gha,mode=max \ . - name: Run integration tests diff --git a/mcp-local/.dockerignore b/mcp-local/.dockerignore new file mode 100644 index 0000000..edaec13 --- /dev/null +++ b/mcp-local/.dockerignore @@ -0,0 +1,17 @@ +.git +.github +**/__pycache__ +**/*.pyc +**/*.pyo +**/*.pyd +**/.pytest_cache +**/.mypy_cache +**/.ruff_cache +**/.venv +**/venv +dist +build +*.log +*.tar +*.tar.gz +*.zip \ No newline at end of file From 3403581e32d9a508823e54c5bc39880e043e4574 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Wed, 11 Feb 2026 15:14:18 -0700 Subject: [PATCH 13/20] fix: disk space issue --- .github/workflows/integration-tests.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 1335840..e532a76 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -16,6 +16,11 @@ jobs: # platform: linux/arm64 runs-on: ${{ matrix.runner }} steps: + - name: Free disk space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false + - name: Checkout uses: actions/checkout@v4 @@ -30,19 +35,6 @@ jobs: python -m pip install --upgrade pip pip install -r mcp-local/tests/requirements.txt - - name: Free disk space - run: | - sudo rm -rf /usr/share/dotnet - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - sudo rm -rf /opt/hostedtoolcache/CodeQL - sudo rm -rf /usr/share/swift - sudo rm -rf /usr/local/.ghcup - sudo apt-get autoremove -y - sudo apt-get clean - docker system prune -af --volumes - df -h - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From f735a420229694b10a9051befe689cfcf1146a4c Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 13:04:01 -0700 Subject: [PATCH 14/20] fix: add config file for pytests --- mcp-local/tests/conftest.py | 28 ++++++++++++++++++++++++++++ mcp-local/tests/test_mcp.py | 6 ++++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 mcp-local/tests/conftest.py diff --git a/mcp-local/tests/conftest.py b/mcp-local/tests/conftest.py new file mode 100644 index 0000000..5ef0fca --- /dev/null +++ b/mcp-local/tests/conftest.py @@ -0,0 +1,28 @@ +# Copyright © 2026, Arm Limited and Contributors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import constants + +def pytest_addoption(parser: pytest.Parser) -> None: + parser.addoption( + "--mcp-image", + action="store", + default=constants.MCP_DOCKER_IMAGE, + help="Docker image to use for MCP tests" + ) + +@pytest.fixture +def mcp_image(request: pytest.FixtureRequest): + return request.config.getoption("--mcp-image") \ No newline at end of file diff --git a/mcp-local/tests/test_mcp.py b/mcp-local/tests/test_mcp.py index 4ce22c9..dca7e04 100644 --- a/mcp-local/tests/test_mcp.py +++ b/mcp-local/tests/test_mcp.py @@ -86,8 +86,10 @@ def _read_mcp_message(sock, timeout: float = 10.0) -> dict: except json.JSONDecodeError: continue -def test_mcp_stdio_transport_responds(): - image = os.getenv("MCP_IMAGE", constants.MCP_DOCKER_IMAGE) +def test_mcp_stdio_transport_responds(mcp_image): + image = mcp_image or os.getenv("MCP_IMAGE", constants.MCP_DOCKER_IMAGE) + + print("image is: ", image) repo_root = Path(__file__).resolve().parents[1] print("\n***repo root: ", repo_root) with ( From d87d0605dccc29e9a761c08cbff0051fa0cd20b8 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 13:55:15 -0700 Subject: [PATCH 15/20] fix: mcp mca test forx86 --- mcp-local/tests/conftest.py | 10 +++++----- mcp-local/tests/constants.py | 6 +++++- mcp-local/tests/test_mcp.py | 30 ++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/mcp-local/tests/conftest.py b/mcp-local/tests/conftest.py index 5ef0fca..1fc4071 100644 --- a/mcp-local/tests/conftest.py +++ b/mcp-local/tests/conftest.py @@ -17,12 +17,12 @@ def pytest_addoption(parser: pytest.Parser) -> None: parser.addoption( - "--mcp-image", + "--platform", action="store", - default=constants.MCP_DOCKER_IMAGE, - help="Docker image to use for MCP tests" + default=constants.DEFAULT_PLATFORM, + help="Platform to use for MCP tests" ) @pytest.fixture -def mcp_image(request: pytest.FixtureRequest): - return request.config.getoption("--mcp-image") \ No newline at end of file +def platform(request: pytest.FixtureRequest): + return request.config.getoption("--platform") \ No newline at end of file diff --git a/mcp-local/tests/constants.py b/mcp-local/tests/constants.py index 0e3b6bc..4819b8b 100644 --- a/mcp-local/tests/constants.py +++ b/mcp-local/tests/constants.py @@ -12,7 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -MCP_DOCKER_IMAGE = "arm-mcp:latest" +MCP_DOCKER_IMAGE_ARM = "arm-mcp:latest" + +MCP_DOCKER_IMAGE_X86 = "armlimited/arm-mcp:latest" + +DEFAULT_PLATFORM = "linux/arm64" INIT_REQUEST = { "jsonrpc": "2.0", diff --git a/mcp-local/tests/test_mcp.py b/mcp-local/tests/test_mcp.py index dca7e04..0011620 100644 --- a/mcp-local/tests/test_mcp.py +++ b/mcp-local/tests/test_mcp.py @@ -86,12 +86,20 @@ def _read_mcp_message(sock, timeout: float = 10.0) -> dict: except json.JSONDecodeError: continue -def test_mcp_stdio_transport_responds(mcp_image): - image = mcp_image or os.getenv("MCP_IMAGE", constants.MCP_DOCKER_IMAGE) +def test_mcp_stdio_transport_responds(platform): + + print("\n***Platform: ", platform) + + #Select the appropriate docker image based on platform + if platform == constants.DEFAULT_PLATFORM: + image = os.getenv("MCP_IMAGE", constants.MCP_DOCKER_IMAGE_ARM) + else: + image = os.getenv("MCP_IMAGE", constants.MCP_DOCKER_IMAGE_X86) + + print("\n***Docker Image: ", image) - print("image is: ", image) repo_root = Path(__file__).resolve().parents[1] - print("\n***repo root: ", repo_root) + print("\n***Repo Root: ", repo_root) with ( DockerContainer(image) .with_volume_mapping(str(repo_root), "/workspace") @@ -162,12 +170,14 @@ def _read_response(expected_id: int, timeout: float = 10.0) -> dict: assert check_sysreport_response.get("result")["structuredContent"] == constants.EXPECTED_CHECK_SYSREPORT_TOOL_RESPONSE, "Test Failed: MCP sysreport_instructions tool failed: content mismatch. Expected: {}, Received: {}".format(json.dumps(constants.EXPECTED_CHECK_SYSREPORT_TOOL_RESPONSE,indent=2), json.dumps(check_sysreport_response.get("result")["structuredContent"],indent=2)) print("\n***Test Passed: MCP sysreport_instructions tool succeeded") - #Check MCA Tool Test - raw_socket.sendall(_encode_mcp_message(constants.CHECK_MCA_TOOL_REQUEST)) - check_mca_response = _read_response(7, timeout=60) - print("\n***MCA Tool Response: ", json.dumps(check_mca_response.get("result")["structuredContent"], indent=2)) - assert check_mca_response.get("result")["structuredContent"]["status"] == constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS, "Test Failed: MCP mca tool failed: status mismatch.Expected: {}, Received: {}".format(json.dumps(constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS,indent=2), json.dumps(check_mca_response.get("result")["structuredContent"]["status"],indent=2)) - print("\n***Test Passed: MCP mca tool succeeded") + #Check MCA Tool Test - works only on platform=linux/arm64 + if platform == constants.DEFAULT_PLATFORM: + raw_socket.sendall(_encode_mcp_message(constants.CHECK_MCA_TOOL_REQUEST)) + check_mca_response = _read_response(7, timeout=60) + assert check_mca_response.get("result")["structuredContent"]["status"] == constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS, "Test Failed: MCP mca tool failed: status mismatch.Expected: {}, Received: {}".format(json.dumps(constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS,indent=2), json.dumps(check_mca_response.get("result")["structuredContent"]["status"],indent=2)) + print("\n***Test Passed: MCP mca tool succeeded") + else: + print("\n***Test NA: MCP mca tool is not supported on this platform") if __name__ == "__main__": pytest.main([__file__]) From 6df8eb3aaefe90883b515475a861bcc65ff21fad Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 14:01:29 -0700 Subject: [PATCH 16/20] fix: uncomment arm runner --- .github/workflows/integration-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index e532a76..b89fec2 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -12,8 +12,8 @@ jobs: include: - runner: ubuntu-24.04 platform: linux/amd64 - #- runner: ubuntu-24.04-arm - # platform: linux/arm64 + - runner: ubuntu-24.04-arm + platform: linux/arm64 runs-on: ${{ matrix.runner }} steps: - name: Free disk space From 52681ddd6d2e6832f401e9e261706da97a630a56 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 14:15:15 -0700 Subject: [PATCH 17/20] fix: platform specific tests --- .github/workflows/integration-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index b89fec2..cc8f8f4 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -52,4 +52,4 @@ jobs: - name: Run integration tests env: MCP_IMAGE: arm-mcp:latest - run: pytest -v mcp-local/tests/test_mcp.py + run: pytest -v mcp-local/tests/test_mcp.py --platform ${{ matrix.platform }} \ No newline at end of file From 82333f9cb7dcf784ffc0ff5c6d436f2edfc1f5a8 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 14:20:01 -0700 Subject: [PATCH 18/20] fix: print platform name in mca test --- mcp-local/tests/test_mcp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mcp-local/tests/test_mcp.py b/mcp-local/tests/test_mcp.py index 0011620..4dea962 100644 --- a/mcp-local/tests/test_mcp.py +++ b/mcp-local/tests/test_mcp.py @@ -177,7 +177,7 @@ def _read_response(expected_id: int, timeout: float = 10.0) -> dict: assert check_mca_response.get("result")["structuredContent"]["status"] == constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS, "Test Failed: MCP mca tool failed: status mismatch.Expected: {}, Received: {}".format(json.dumps(constants.EXPECTED_CHECK_MCA_TOOL_RESPONSE_STATUS,indent=2), json.dumps(check_mca_response.get("result")["structuredContent"]["status"],indent=2)) print("\n***Test Passed: MCP mca tool succeeded") else: - print("\n***Test NA: MCP mca tool is not supported on this platform") + print("\n***Test NA: MCP mca tool is not supported on this platform: {}".format(platform)) if __name__ == "__main__": pytest.main([__file__]) From a3081fb4912da4d53df19f3606a21e08a6f36ec6 Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 16:56:36 -0700 Subject: [PATCH 19/20] test: amd64 build & test --- .github/workflows/integration-tests.yml | 30 +++---------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index cc8f8f4..a18cd7a 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -6,21 +6,8 @@ on: jobs: integration-tests: - strategy: - fail-fast: false - matrix: - include: - - runner: ubuntu-24.04 - platform: linux/amd64 - - runner: ubuntu-24.04-arm - platform: linux/arm64 - runs-on: ${{ matrix.runner }} + runs-on: ubuntu-24.04 steps: - - name: Free disk space - uses: jlumbroso/free-disk-space@main - with: - tool-cache: false - - name: Checkout uses: actions/checkout@v4 @@ -35,21 +22,10 @@ jobs: python -m pip install --upgrade pip pip install -r mcp-local/tests/requirements.txt - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build MCP Docker image - run: | - docker buildx build \ - --platform ${{ matrix.platform }} \ - -f mcp-local/Dockerfile \ - -t arm-mcp:latest \ - --output type=docker \ - --cache-from type=gha \ - --cache-to type=gha,mode=max \ - . + run: docker buildx build -f mcp-local/Dockerfile -t arm-mcp . - name: Run integration tests env: MCP_IMAGE: arm-mcp:latest - run: pytest -v mcp-local/tests/test_mcp.py --platform ${{ matrix.platform }} \ No newline at end of file + run: pytest -v mcp-local/tests/test_mcp.py --platform="linux/amd64" \ No newline at end of file From bd2243eeffac32fc0756e21ac45585f2597247fd Mon Sep 17 00:00:00 2001 From: Neethu Elizabeth Simon Date: Thu, 12 Feb 2026 17:06:36 -0700 Subject: [PATCH 20/20] test: add free disk space --- .github/workflows/integration-tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index a18cd7a..d6841b7 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -8,6 +8,10 @@ jobs: integration-tests: runs-on: ubuntu-24.04 steps: + - name: Free disk space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false - name: Checkout uses: actions/checkout@v4