Skip to content

Commit a33db8a

Browse files
committed
fix(cli): add --socket-path for Unix socket IPC and fix ANSI output in non-TTY contexts
- serve: add --socket-path argument to 'orb system serve' enabling programmatic callers to communicate via Unix domain socket - serve: wire --scheduler global flag through to REST server DI container - serve: log startup message before blocking, return 'Server stopped' after - cli: fix ANSI escape codes leaking into non-TTY output — rich_argparse now uses Console(color_system=None) when stderr is not a TTY - cli: remove StringIO stderr-capture hack that was re-emitting ANSI strings - cli: wire --no-color flag via sys.argv check at import time
1 parent 09c48c8 commit a33db8a

64 files changed

Lines changed: 6858 additions & 2285 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/sdk-go.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Go SDK
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
paths:
7+
- 'sdk/go/**'
8+
- 'sdk/go/openapi.json'
9+
- '.github/workflows/sdk-go.yml'
10+
pull_request:
11+
branches: [ main, develop ]
12+
paths:
13+
- 'sdk/go/**'
14+
- 'sdk/go/openapi.json'
15+
- '.github/workflows/sdk-go.yml'
16+
schedule:
17+
- cron: '0 2 * * *'
18+
19+
permissions:
20+
contents: read
21+
22+
jobs:
23+
build-and-test:
24+
name: Go SDK Build & Test
25+
runs-on: ubuntu-latest
26+
permissions:
27+
contents: read
28+
29+
steps:
30+
- name: Checkout code
31+
uses: actions/checkout@v6
32+
33+
- name: Set up Go
34+
uses: actions/setup-go@v5
35+
with:
36+
go-version-file: sdk/go/go.mod
37+
cache-dependency-path: sdk/go/go.sum
38+
39+
- name: Build
40+
working-directory: sdk/go
41+
run: go build ./...
42+
43+
- name: Test
44+
working-directory: sdk/go
45+
run: go test ./...
46+
47+
check-drift:
48+
name: Check Generated Code Drift
49+
runs-on: ubuntu-latest
50+
permissions:
51+
contents: read
52+
# Only run drift check when openapi.json changes
53+
if: github.event_name == 'pull_request'
54+
55+
steps:
56+
- name: Checkout code
57+
uses: actions/checkout@v6
58+
59+
- name: Set up Go
60+
uses: actions/setup-go@v5
61+
with:
62+
go-version-file: sdk/go/go.mod
63+
cache-dependency-path: sdk/go/go.sum
64+
65+
- name: Install ogen
66+
run: go install github.com/ogen-go/ogen/cmd/ogen@latest
67+
68+
- name: Regenerate SDK
69+
working-directory: sdk/go
70+
run: go generate ./...
71+
72+
- name: Check for drift
73+
run: |
74+
if ! git diff --exit-code sdk/go/; then
75+
echo "Generated Go SDK code is out of sync with openapi.json."
76+
echo "Run 'cd sdk/go && go generate ./...' and commit the result."
77+
exit 1
78+
fi

.github/workflows/semantic-release.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,27 @@ jobs:
113113
with:
114114
github_token: ${{ steps.app-token.outputs.token }}
115115
tag: ${{ steps.release.outputs.tag }}
116+
117+
- name: Export OpenAPI spec for Go SDK
118+
if: steps.release.outputs.released == 'true'
119+
run: |
120+
orb system serve --socket-path /tmp/orb-spec.sock &
121+
sleep 5
122+
curl --unix-socket /tmp/orb-spec.sock http://localhost/openapi.json > sdk/go/openapi.json
123+
kill %1 || true
124+
125+
- name: Update Go SDK version
126+
if: steps.release.outputs.released == 'true'
127+
run: |
128+
VERSION="${{ steps.release.outputs.version }}"
129+
sed -i "s/MinCompatibleVersion = \".*\"/MinCompatibleVersion = \"${VERSION}\"/" sdk/go/orb/version.go
130+
git add sdk/go/openapi.json sdk/go/orb/version.go
131+
git diff --cached --quiet || git commit -m "chore(sdk/go): update for v${VERSION} [skip ci]"
132+
git push
133+
134+
- name: Tag Go SDK
135+
if: steps.release.outputs.released == 'true'
136+
run: |
137+
VERSION="${{ steps.release.outputs.version }}"
138+
git tag "sdk/go/v${VERSION}"
139+
git push origin "sdk/go/v${VERSION}"

config/aws_flamurg-testing-Admin_eu-west-2_templates.json

Lines changed: 0 additions & 43 deletions
This file was deleted.

config/aws_templates.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"name": "EC2 Fleet Instant On-Demand",
1818
"providerApi": "EC2Fleet",
1919
"providerType": "aws",
20-
"createdAt": "2026-03-20T13:33:26.173247"
20+
"createdAt": "2026-04-06T16:50:49.737415"
2121
},
2222
{
2323
"templateId": "EC2Fleet-Instant-Spot",
@@ -36,7 +36,7 @@
3636
"name": "EC2 Fleet Instant Spot",
3737
"providerApi": "EC2Fleet",
3838
"providerType": "aws",
39-
"createdAt": "2026-03-20T13:33:26.173889"
39+
"createdAt": "2026-04-06T16:50:49.738212"
4040
},
4141
{
4242
"templateId": "EC2Fleet-Instant-Mixed",
@@ -55,7 +55,7 @@
5555
"name": "EC2 Fleet Instant Mixed",
5656
"providerApi": "EC2Fleet",
5757
"providerType": "aws",
58-
"createdAt": "2026-03-20T13:33:26.173911",
58+
"createdAt": "2026-04-06T16:50:49.738235",
5959
"percentOnDemand": 30
6060
},
6161
{
@@ -74,7 +74,7 @@
7474
"name": "EC2 Fleet Request On-Demand",
7575
"providerApi": "EC2Fleet",
7676
"providerType": "aws",
77-
"createdAt": "2026-03-20T13:33:26.173922"
77+
"createdAt": "2026-04-06T16:50:49.738247"
7878
},
7979
{
8080
"templateId": "EC2Fleet-Request-Spot",
@@ -93,7 +93,7 @@
9393
"name": "EC2 Fleet Request Spot",
9494
"providerApi": "EC2Fleet",
9595
"providerType": "aws",
96-
"createdAt": "2026-03-20T13:33:26.173932"
96+
"createdAt": "2026-04-06T16:50:49.738258"
9797
},
9898
{
9999
"templateId": "EC2Fleet-Request-Mixed",
@@ -113,7 +113,7 @@
113113
"name": "EC2 Fleet Request Mixed",
114114
"providerApi": "EC2Fleet",
115115
"providerType": "aws",
116-
"createdAt": "2026-03-20T13:33:26.173942",
116+
"createdAt": "2026-04-06T16:50:49.738268",
117117
"percentOnDemand": 40,
118118
"allocationStrategyOnDemand": "lowestPrice"
119119
},
@@ -133,7 +133,7 @@
133133
"name": "EC2 Fleet Maintain On-Demand",
134134
"providerApi": "EC2Fleet",
135135
"providerType": "aws",
136-
"createdAt": "2026-03-20T13:33:26.173951"
136+
"createdAt": "2026-04-06T16:50:49.738277"
137137
},
138138
{
139139
"templateId": "EC2Fleet-Maintain-Spot",
@@ -152,7 +152,7 @@
152152
"name": "EC2 Fleet Maintain Spot",
153153
"providerApi": "EC2Fleet",
154154
"providerType": "aws",
155-
"createdAt": "2026-03-20T13:33:26.173960"
155+
"createdAt": "2026-04-06T16:50:49.738290"
156156
},
157157
{
158158
"templateId": "EC2Fleet-Maintain-Mixed",
@@ -173,7 +173,7 @@
173173
"name": "EC2 Fleet Maintain Mixed",
174174
"providerApi": "EC2Fleet",
175175
"providerType": "aws",
176-
"createdAt": "2026-03-20T13:33:26.173972",
176+
"createdAt": "2026-04-06T16:50:49.738297",
177177
"percentOnDemand": 50,
178178
"allocationStrategyOnDemand": "prioritized"
179179
},
@@ -195,7 +195,7 @@
195195
"name": "Spot Fleet Request - Lowest Price",
196196
"providerApi": "SpotFleet",
197197
"providerType": "aws",
198-
"createdAt": "2026-03-20T13:33:26.173984"
198+
"createdAt": "2026-04-06T16:50:49.738310"
199199
},
200200
{
201201
"templateId": "SpotFleet-Request-Diversified",
@@ -215,7 +215,7 @@
215215
"name": "Spot Fleet Request - Diversified",
216216
"providerApi": "SpotFleet",
217217
"providerType": "aws",
218-
"createdAt": "2026-03-20T13:33:26.173993"
218+
"createdAt": "2026-04-06T16:50:49.738317"
219219
},
220220
{
221221
"templateId": "SpotFleet-Request-CapacityOptimized",
@@ -235,7 +235,7 @@
235235
"name": "Spot Fleet Request - Capacity Optimized",
236236
"providerApi": "SpotFleet",
237237
"providerType": "aws",
238-
"createdAt": "2026-03-20T13:33:26.173999"
238+
"createdAt": "2026-04-06T16:50:49.738322"
239239
},
240240
{
241241
"templateId": "SpotFleet-Maintain-LowestPrice",
@@ -255,7 +255,7 @@
255255
"name": "Spot Fleet Maintain - Lowest Price",
256256
"providerApi": "SpotFleet",
257257
"providerType": "aws",
258-
"createdAt": "2026-03-20T13:33:26.174005"
258+
"createdAt": "2026-04-06T16:50:49.738328"
259259
},
260260
{
261261
"templateId": "SpotFleet-Maintain-Diversified",
@@ -275,7 +275,7 @@
275275
"name": "Spot Fleet Maintain - Diversified",
276276
"providerApi": "SpotFleet",
277277
"providerType": "aws",
278-
"createdAt": "2026-03-20T13:33:26.174011"
278+
"createdAt": "2026-04-06T16:50:49.738335"
279279
},
280280
{
281281
"templateId": "SpotFleet-Maintain-CapacityOptimized",
@@ -295,7 +295,7 @@
295295
"name": "Spot Fleet Maintain - Capacity Optimized",
296296
"providerApi": "SpotFleet",
297297
"providerType": "aws",
298-
"createdAt": "2026-03-20T13:33:26.174016"
298+
"createdAt": "2026-04-06T16:50:49.738340"
299299
},
300300
{
301301
"templateId": "ASG-OnDemand",
@@ -312,7 +312,7 @@
312312
"name": "Auto Scaling Group On-Demand",
313313
"providerApi": "ASG",
314314
"providerType": "aws",
315-
"createdAt": "2026-03-20T13:33:26.174023"
315+
"createdAt": "2026-04-06T16:50:49.738348"
316316
},
317317
{
318318
"templateId": "ASG-Spot",
@@ -330,7 +330,7 @@
330330
"name": "Auto Scaling Group Spot",
331331
"providerApi": "ASG",
332332
"providerType": "aws",
333-
"createdAt": "2026-03-20T13:33:26.174033"
333+
"createdAt": "2026-04-06T16:50:49.738361"
334334
},
335335
{
336336
"templateId": "ASG-Mixed",
@@ -348,7 +348,7 @@
348348
"name": "Auto Scaling Group Mixed",
349349
"providerApi": "ASG",
350350
"providerType": "aws",
351-
"createdAt": "2026-03-20T13:33:26.174042",
351+
"createdAt": "2026-04-06T16:50:49.738370",
352352
"percentOnDemand": 30
353353
},
354354
{
@@ -366,7 +366,7 @@
366366
"name": "Run Instances On-Demand",
367367
"providerApi": "RunInstances",
368368
"providerType": "aws",
369-
"createdAt": "2026-03-20T13:33:26.174049"
369+
"createdAt": "2026-04-06T16:50:49.738379"
370370
},
371371
{
372372
"templateId": "RunInstances-Spot",
@@ -384,7 +384,7 @@
384384
"name": "Run Instances Spot",
385385
"providerApi": "RunInstances",
386386
"providerType": "aws",
387-
"createdAt": "2026-03-20T13:33:26.174058"
387+
"createdAt": "2026-04-06T16:50:49.738387"
388388
}
389389
]
390390
}

0 commit comments

Comments
 (0)