Skip to content

Commit c4c4be2

Browse files
authored
Merge pull request #193 from awslabs/fix/orb-go
feat(sdk+cli): Go SDK, Unix socket IPC, scheduler support, client fixes
2 parents 09c48c8 + b8ae233 commit c4c4be2

68 files changed

Lines changed: 7614 additions & 2287 deletions

Some content is hidden

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

.github/dependabot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,22 @@ updates:
8585
patterns:
8686
- "*"
8787

88+
# Go dependencies (SDK)
89+
- package-ecosystem: "gomod"
90+
directory: "/"
91+
schedule:
92+
interval: "weekly"
93+
day: "sunday"
94+
time: "06:00"
95+
timezone: "America/New_York"
96+
labels:
97+
- "dependencies"
98+
- "go"
99+
commit-message:
100+
prefix: "chore(deps)"
101+
include: "scope"
102+
open-pull-requests-limit: 2
103+
88104
# Docker dependencies
89105
- package-ecosystem: "docker"
90106
directory: "/"

.github/workflows/sdk-go.yml

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

.github/workflows/semantic-release.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,11 @@ 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: make sdk-go-export-spec
120+
121+
- name: Update Go SDK version
122+
if: steps.release.outputs.released == 'true'
123+
run: make sdk-go-update-version VERSION=${{ steps.release.outputs.version }}

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ container-health-check: dev-install ## Check container health endpoint
6464
@uv run python ./dev-tools/container/container_health_check.py
6565

6666
# Make targets that don't correspond to files
67-
.PHONY: help install install-pip dev-install typecheck ci-quality-pyright dev-install-pip ci-install requirements-generate test test-unit test-integration test-e2e test-onaws test-all test-parallel test-quick test-performance test-aws test-cov test-html test-report system-tests generate-pyproject deps-add deps-add-dev clean clean-all dev-setup install-package uninstall-package reinstall-package init-db create-config validate-config quick-start dev status uv-lock uv-sync uv-sync-dev uv-check uv-benchmark quality-check quality-check-all quality-check-fix quality-check-files format-fix container-health-check git-config lint lint-optional pre-commit format hadolint-check dev-checks-container dev-checks-container-required format-container hadolint-check-container install-dev-tools install-dev-tools-required install-dev-tools-dry-run clean-whitespace security security-quick security-all ci-security-container security-with-container security-full sbom-generate security-scan security-validate-sarif security-report architecture-check architecture-report quality-gates quality-full file-sizes file-sizes-report validate-workflow-syntax validate-workflow-logic validate-shell-scripts validate-shellcheck validate-all-workflows validate-all-files detect-secrets pre-commit-check pre-commit-check-required ci-quality-ruff ci-quality-ruff-optional ci-quality-radon ci-quality ci-quality-full ci-arch-cqrs ci-arch-clean ci-arch-imports ci-arch-file-sizes ci-architecture ci-security-bandit ci-security-safety ci-security-trivy ci-security-hadolint ci-security-semgrep ci-security-trivy-fs ci-security-trufflehog ci-security ci-build-sbom ci-tests-unit ci-tests-integration ci-tests-e2e ci-tests-matrix ci-tests-performance ci-check ci-check-quick ci-check-verbose ci ci-quick workflow-ci workflow-test-matrix workflow-security docs docs-build ci-docs-build ci-docs-build-for-pages docs-serve docs-deploy ci-docs-deploy docs-deploy-version docs-list-versions docs-delete-version docs-clean version-show get-version version-bump-patch version-bump-minor version-bump-major version-bump build build-test test-install container-build container-build-single container-build-multi container-push-multi container-show-version container-run docker-compose-up docker-compose-down promote-alpha promote-beta promote-rc promote-stable _promote changelog-generate changelog-update changelog-validate changelog-preview changelog-delete changelog-backfill changelog-regenerate changelog-sync-check release-notes-generate release-notes-preview release-backfill git-changelog-since git-unreleased-commits git-last-release run run-dev generate-completions install-completions install-bash-completions install-zsh-completions uninstall-completions test-completions security-container validate-workflows check-requirements quality-check-custom test-docker
67+
.PHONY: help install install-pip dev-install typecheck ci-quality-pyright dev-install-pip ci-install requirements-generate test test-unit test-integration test-e2e test-onaws test-all test-parallel test-quick test-performance test-aws test-cov test-html test-report system-tests generate-pyproject deps-add deps-add-dev clean clean-all dev-setup install-package uninstall-package reinstall-package init-db create-config validate-config quick-start dev status uv-lock uv-sync uv-sync-dev uv-check uv-benchmark quality-check quality-check-all quality-check-fix quality-check-files format-fix container-health-check git-config lint lint-optional pre-commit format hadolint-check dev-checks-container dev-checks-container-required format-container hadolint-check-container install-dev-tools install-dev-tools-required install-dev-tools-dry-run clean-whitespace security security-quick security-all ci-security-container security-with-container security-full sbom-generate security-scan security-validate-sarif security-report architecture-check architecture-report quality-gates quality-full file-sizes file-sizes-report validate-workflow-syntax validate-workflow-logic validate-shell-scripts validate-shellcheck validate-all-workflows validate-all-files detect-secrets pre-commit-check pre-commit-check-required ci-quality-ruff ci-quality-ruff-optional ci-quality-radon ci-quality ci-quality-full ci-arch-cqrs ci-arch-clean ci-arch-imports ci-arch-file-sizes ci-architecture ci-security-bandit ci-security-safety ci-security-trivy ci-security-hadolint ci-security-semgrep ci-security-trivy-fs ci-security-trufflehog ci-security ci-build-sbom ci-tests-unit ci-tests-integration ci-tests-e2e ci-tests-matrix ci-tests-performance ci-tests-providers ci-tests-infrastructure ci-check ci-check-quick ci-check-verbose ci ci-quick workflow-ci workflow-test-matrix workflow-security docs docs-build ci-docs-build ci-docs-build-for-pages docs-serve docs-deploy ci-docs-deploy docs-deploy-version docs-list-versions docs-delete-version docs-clean version-show get-version version-bump-patch version-bump-minor version-bump-major version-bump build build-test test-install container-build container-build-single container-build-multi container-push-multi container-show-version container-run docker-compose-up docker-compose-down promote-alpha promote-beta promote-rc promote-stable _promote changelog-generate changelog-update changelog-validate changelog-preview changelog-delete changelog-backfill changelog-regenerate changelog-sync-check release-notes-generate release-notes-preview release-backfill git-changelog-since git-unreleased-commits git-last-release run run-dev generate-completions install-completions install-bash-completions install-zsh-completions uninstall-completions test-completions security-container validate-workflows check-requirements quality-check-custom test-docker

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)