@@ -22,13 +22,24 @@ jobs:
2222 java-version : 25
2323 steps :
2424 - name : Checkout
25- uses : actions/checkout@v5
25+ uses : actions/checkout@v6
2626 - name : Set up JDK ${{ matrix.java-version }}
2727 uses : actions/setup-java@v5
2828 with :
2929 java-version : ${{ matrix.java-version }}
3030 distribution : ' temurin'
3131 cache : maven
32+
33+ # 1. Set up Go (cross-platform)
34+ - name : Set up Go
35+ uses : actions/setup-go@v6
36+ with :
37+ go-version : ' stable'
38+
39+ # 2. Install grpcurl (this places it in the $PATH automatically)
40+ - name : Install grpcurl
41+ run : go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
42+
3243 - name : Build
3344 run : mvn -B install -P gradlePlugin --no-transfer-progress
3445 env :
4859
4960 tests, failures, errors, skipped = 0, 0, 0, 0
5061 failed_tests = set()
62+ skipped_tests = set()
5163
5264 for f in files:
5365 try:
@@ -63,20 +75,24 @@ jobs:
6375 errors += int(suite.attrib.get("errors", 0))
6476 skipped += int(suite.attrib.get("skipped", 0))
6577
66- # Collect names of failing tests
78+ # Collect names of failing and skipped tests
6779 for case in suite.findall("testcase"):
6880 if case.find("failure") is not None or case.find("error") is not None:
6981 # Strip the package path from the classname for a cleaner display
7082 cls = case.attrib.get("classname", "UnknownClass").split(".")[-1]
7183 name = case.attrib.get("name", "UnknownMethod")
7284 failed_tests.add(f"- `{cls}.{name}`")
85+ elif case.find("skipped") is not None:
86+ cls = case.attrib.get("classname", "UnknownClass").split(".")[-1]
87+ name = case.attrib.get("name", "UnknownMethod")
88+ skipped_tests.add(f"- `{cls}.{name}`")
7389 except Exception as e:
7490 print(f"Error parsing {f}: {e}")
7591
7692 passed = tests - failures - errors - skipped
7793 summary_file = os.environ.get("GITHUB_STEP_SUMMARY")
7894
79- with open(summary_file, "a") as f:
95+ with open(summary_file, "a", encoding="utf-8" ) as f:
8096 if not files:
8197 f.write("⚠️ **Could not find any `TEST-*.xml` files.**\n")
8298 else:
@@ -97,4 +113,10 @@ jobs:
97113 else:
98114 f.write("### 🎉 100% Pass Rate!\n")
99115 f.write(f"The build is green across all {tests} tests.\n")
116+
117+ # Provide specific feedback for skips
118+ if skipped > 0:
119+ f.write("\n### ⚠️ Skipped Tests\n")
120+ for test in sorted(skipped_tests):
121+ f.write(f"{test}\n")
100122 '
0 commit comments