@@ -33,10 +33,10 @@ jobs:
3333 run : bun run format:check
3434
3535 # ==========================================================================
36- # TypeScript Tests
36+ # TypeScript Lint
3737 # ==========================================================================
38- typescript :
39- name : TypeScript Tests
38+ typescript-lint :
39+ name : TS Lint
4040 runs-on : ubuntu-latest
4141 defaults :
4242 run :
@@ -56,24 +56,70 @@ jobs:
5656 run : bun run lint
5757 continue-on-error : true
5858
59- - name : Run required tests
60- run : bun run test:required
61- continue-on-error : true # Tests depend on testnet which may be flaky
59+ # ==========================================================================
60+ # TypeScript Tests (parallelized by feature category)
61+ # ==========================================================================
62+ typescript :
63+ name : TS (${{ matrix.category }})
64+ runs-on : ubuntu-latest
65+ timeout-minutes : 15
66+ strategy :
67+ fail-fast : false
68+ matrix :
69+ include :
70+ - category : core-types
71+ tags : " @core-types"
72+ - category : cryptography
73+ tags : " @cryptography"
74+ - category : accounts
75+ tags : " @account-management"
76+ - category : transactions
77+ tags : " @transaction-building"
78+ - category : api-clients
79+ tags : " @api-clients"
80+ - category : advanced
81+ tags : " @advanced and not @performance"
82+ defaults :
83+ run :
84+ working-directory : tests/typescript
85+ steps :
86+ - uses : actions/checkout@v4
6287
63- - name : Run preferred tests
64- run : bun run test:preferred
65- continue-on-error : true
88+ - name : Setup Bun
89+ uses : oven-sh/setup-bun@v2
90+ with :
91+ bun-version : latest
6692
67- - name : Run optional tests
68- run : bun run test:optional
93+ - name : Install dependencies
94+ run : bun install
95+
96+ - name : Run tests
97+ run : bun run cucumber-js --tags '${{ matrix.tags }}' --parallel 4
6998 continue-on-error : true
7099
71100 # ==========================================================================
72- # Go Tests
101+ # Go Tests (parallelized by feature category)
73102 # ==========================================================================
74103 go :
75- name : Go Tests
104+ name : Go (${{ matrix.category }})
76105 runs-on : ubuntu-latest
106+ timeout-minutes : 10
107+ strategy :
108+ fail-fast : false
109+ matrix :
110+ include :
111+ - category : core-types
112+ tags : " @core-types"
113+ - category : cryptography
114+ tags : " @cryptography"
115+ - category : accounts
116+ tags : " @account-management"
117+ - category : transactions
118+ tags : " @transaction-building"
119+ - category : api-clients
120+ tags : " @api-clients"
121+ - category : advanced
122+ tags : " @advanced and not @performance"
77123 defaults :
78124 run :
79125 working-directory : tests/go
@@ -89,20 +135,8 @@ jobs:
89135 - name : Install dependencies
90136 run : go mod download
91137
92- - name : Lint
93- run : go vet ./...
94- continue-on-error : true
95-
96- - name : Run required tests
97- run : make test-required
98- continue-on-error : true # Tests depend on testnet which may be flaky
99-
100- - name : Run preferred tests
101- run : make test-preferred
102- continue-on-error : true
103-
104- - name : Run optional tests
105- run : make test-optional
138+ - name : Run tests
139+ run : GODOG_TAGS='${{ matrix.tags }}' go test -v -count=1 ./...
106140 continue-on-error : true
107141
108142 # ==========================================================================
@@ -111,6 +145,7 @@ jobs:
111145 rust :
112146 name : Rust Tests
113147 runs-on : ubuntu-latest
148+ timeout-minutes : 10
114149 defaults :
115150 run :
116151 working-directory : tests/rust
@@ -166,6 +201,7 @@ jobs:
166201 python :
167202 name : Python Tests
168203 runs-on : ubuntu-latest
204+ timeout-minutes : 10
169205 defaults :
170206 run :
171207 working-directory : tests/python
@@ -207,6 +243,7 @@ jobs:
207243 dotnet :
208244 name : .NET Tests
209245 runs-on : ubuntu-latest
246+ timeout-minutes : 10
210247 defaults :
211248 run :
212249 working-directory : tests/dotnet
@@ -238,6 +275,7 @@ jobs:
238275 java :
239276 name : Java Tests
240277 runs-on : ubuntu-latest
278+ timeout-minutes : 10
241279 defaults :
242280 run :
243281 working-directory : tests/java
@@ -265,6 +303,7 @@ jobs:
265303 kotlin :
266304 name : Kotlin Tests
267305 runs-on : ubuntu-latest
306+ timeout-minutes : 10
268307 defaults :
269308 run :
270309 working-directory : tests/kotlin
@@ -295,6 +334,7 @@ jobs:
295334 swift :
296335 name : Swift Tests
297336 runs-on : macos-latest
337+ timeout-minutes : 10
298338 defaults :
299339 run :
300340 working-directory : tests/swift
@@ -353,6 +393,7 @@ jobs:
353393 runs-on : ubuntu-latest
354394 needs :
355395 - format-check
396+ - typescript-lint
356397 - typescript
357398 - go
358399 - rust
@@ -361,7 +402,6 @@ jobs:
361402 - java
362403 - kotlin
363404 - swift
364- # - cpp # disabled
365405 if : always()
366406 steps :
367407 - name : Check required jobs
@@ -374,15 +414,15 @@ jobs:
374414
375415 # Report on SDK test results (informational)
376416 echo "=== SDK Test Results (informational) ==="
377- echo "TypeScript: ${{ needs.typescript.result }}"
378- echo "Go: ${{ needs.go.result }}"
417+ echo "TS Lint: ${{ needs.typescript-lint.result }}"
418+ echo "TypeScript (matrix): ${{ needs.typescript.result }}"
419+ echo "Go (matrix): ${{ needs.go.result }}"
379420 echo "Rust: ${{ needs.rust.result }}"
380421 echo "Python: ${{ needs.python.result }}"
381422 echo ".NET: ${{ needs.dotnet.result }}"
382423 echo "Java: ${{ needs.java.result }}"
383424 echo "Kotlin: ${{ needs.kotlin.result }}"
384425 echo "Swift: ${{ needs.swift.result }}"
385- # echo "C++: ${{ needs.cpp.result }}" # disabled
386426 echo ""
387427 echo "Note: SDK tests depend on external services (testnet, faucet)"
388428 echo "and may fail due to network issues, not code problems."
0 commit comments