Commit a587e8a
committed
fix(release): repair the release pipeline and sign released artifacts
Release-pipeline fixes:
- Attach the DI container on the early-dispatch path so 'orb init' /
'orb templates generate' work on a fresh checkout (they raised
AttributeError before), unblocking the OpenAPI-export release step.
- 'all' extra now includes the web UI + monitoring-aws, so
'pip install orb-py[all]' and the published container are fully functional.
The production and dev container images build the SPA (Setup Bun) and install
'[all]'; the release install syncs '--extra all --no-dev'. A unit test guards
that 'all' keeps covering every runtime extra. The container HEALTHCHECK
probes /orb/health to match the embedded-UI mount point.
- SBOM generation is non-blocking and emits CycloneDX + plain + SPDX; all three
ship as release assets. The OpenAPI-export readiness check polls the served
endpoint and fails explicitly if the server never becomes ready.
- Manual workflow_dispatch cannot publish to production: the wheel-publish,
container build/push/sign, manifest, and asset jobs are all gated to
'release' events, so a manual run can't push dev-versioned images or move
the 'latest' tag.
- Serial-provider junit/coverage filenames match the Codecov upload pattern.
Signing & provenance:
- Release assets (wheel + sdist) carry a single Sigstore build-provenance
attestation, produced in one place over the exact published wheel, uploaded
alongside the release.
- Container images are cosign-signed (keyless) with SLSA build provenance +
SBOM attestations (per-image and manifest lists); images are vulnerability-
scanned with a blocking gate (build --load, Trivy exit-1 on CRITICAL/HIGH)
before push on the default Python, advisory on the rest.
- PyPI publishing keeps its PEP 740 attestations.1 parent 001b964 commit a587e8a
12 files changed
Lines changed: 452 additions & 32 deletions
File tree
- .github/workflows
- dev-tools/release
- makefiles
- src/orb/cli
- tests/unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
106 | 110 | | |
107 | 111 | | |
108 | 112 | | |
| |||
126 | 130 | | |
127 | 131 | | |
128 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
129 | 142 | | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
134 | 146 | | |
135 | 147 | | |
136 | 148 | | |
| 149 | + | |
137 | 150 | | |
138 | 151 | | |
139 | 152 | | |
| |||
169 | 182 | | |
170 | 183 | | |
171 | 184 | | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
172 | 188 | | |
173 | 189 | | |
174 | 190 | | |
175 | 191 | | |
176 | 192 | | |
177 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
178 | 202 | | |
179 | 203 | | |
180 | 204 | | |
| |||
195 | 219 | | |
196 | 220 | | |
197 | 221 | | |
| 222 | + | |
198 | 223 | | |
199 | 224 | | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
200 | 245 | | |
201 | 246 | | |
202 | 247 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
| 83 | + | |
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
159 | 160 | | |
160 | 161 | | |
161 | 162 | | |
| |||
0 commit comments