From 4f949915023981729b4edeeee6b59045f86a8b93 Mon Sep 17 00:00:00 2001 From: Ivan Shymko Date: Wed, 22 Apr 2026 13:59:39 +0000 Subject: [PATCH 1/3] ci(linter): show which step failed --- .github/workflows/linter.yaml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linter.yaml b/.github/workflows/linter.yaml index 2c2a035a0..4c211aba8 100644 --- a/.github/workflows/linter.yaml +++ b/.github/workflows/linter.yaml @@ -62,12 +62,22 @@ jobs: - name: Check Linter Statuses if: always() # This ensures the step runs even if previous steps failed + env: + RUFF_LINT: ${{ steps.ruff-lint.outcome }} + RUFF_FORMAT: ${{ steps.ruff-format.outcome }} + MYPY: ${{ steps.mypy.outcome }} + PYRIGHT: ${{ steps.pyright.outcome }} + JSCPD: ${{ steps.jscpd.outcome }} run: | - if [[ "${{ steps.ruff-lint.outcome }}" == "failure" || \ - "${{ steps.ruff-format.outcome }}" == "failure" || \ - "${{ steps.mypy.outcome }}" == "failure" || \ - "${{ steps.pyright.outcome }}" == "failure" || \ - "${{ steps.jscpd.outcome }}" == "failure" ]]; then - echo "One or more linting/checking steps failed." + failed=() + [[ "$RUFF_LINT" == "failure" ]] && failed+=("Ruff Linter") + [[ "$RUFF_FORMAT" == "failure" ]] && failed+=("Ruff Formatter") + [[ "$MYPY" == "failure" ]] && failed+=("MyPy") + [[ "$PYRIGHT" == "failure" ]] && failed+=("Pyright") + [[ "$JSCPD" == "failure" ]] && failed+=("JSCPD") + + if (( ${#failed[@]} )); then + joined=$(IFS=', '; echo "${failed[*]}") + echo "::error title=Linter failures::The following checks failed: ${joined}. See the corresponding step logs above for details." exit 1 fi From 5d538b8526835e64c68f270053c0c46ccc6db4ec Mon Sep 17 00:00:00 2001 From: Ivan Shymko Date: Wed, 22 Apr 2026 14:05:10 +0000 Subject: [PATCH 2/3] Introduce failure for test --- src/a2a/utils/constants.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/a2a/utils/constants.py b/src/a2a/utils/constants.py index 5497d8a24..4f325264c 100644 --- a/src/a2a/utils/constants.py +++ b/src/a2a/utils/constants.py @@ -1,8 +1,14 @@ """Constants for well-known URIs used throughout the A2A Python SDK.""" +import os # CI test: unused import to trigger ruff F401 from enum import Enum +def _ci_test_bad_return() -> int: + """CI test: returns str but annotated as int to trigger mypy.""" + return 'not an int' + + AGENT_CARD_WELL_KNOWN_PATH = '/.well-known/agent-card.json' DEFAULT_RPC_URL = '/' DEFAULT_LIST_TASKS_PAGE_SIZE = 50 From 4673d481b9f698e538d4add3a220c77b5736bcd7 Mon Sep 17 00:00:00 2001 From: Ivan Shymko Date: Wed, 22 Apr 2026 14:08:32 +0000 Subject: [PATCH 3/3] Revert "Introduce failure for test" This reverts commit 5d538b8526835e64c68f270053c0c46ccc6db4ec. --- src/a2a/utils/constants.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/a2a/utils/constants.py b/src/a2a/utils/constants.py index 4f325264c..5497d8a24 100644 --- a/src/a2a/utils/constants.py +++ b/src/a2a/utils/constants.py @@ -1,14 +1,8 @@ """Constants for well-known URIs used throughout the A2A Python SDK.""" -import os # CI test: unused import to trigger ruff F401 from enum import Enum -def _ci_test_bad_return() -> int: - """CI test: returns str but annotated as int to trigger mypy.""" - return 'not an int' - - AGENT_CARD_WELL_KNOWN_PATH = '/.well-known/agent-card.json' DEFAULT_RPC_URL = '/' DEFAULT_LIST_TASKS_PAGE_SIZE = 50