Builds and quality
Every SDK build runs through a series of checks, and you can follow each one per language. Open Builds in SDK Studio to track builds and download the results. New builds start when you publish.
How a build works
- Generate
Octri generates the source for each language you've enabled, independently, so one language failing doesn't block the rest.
- Push to staging
With repositories set up, generated source lands in that language's staging repository.
- Check quality
The SDK Quality job runs on GitHub Actions in the staging repository. You can read its log from the build.
- Promote to production
Promotion pushes the exact commit that was staged to your production repository. Generation never writes there directly.
Without repositories, a build still generates source you can download.
Quality checks
Each language's package goes through these stages. A failure records the first one that went wrong.
| Check | What it proves |
|---|---|
| Generate | The generator produced the package |
| Format | The code passes the language's formatter |
| Lint | The code passes the language's linter |
| Compile | The code compiles |
| Native tests | The generated tests pass |
| Contract tests | The SDK behaves as your spec says it should |
| Package | The package can be built for distribution |
| Consumer install | A fresh project can install and use it |
Lint and formatting warnings don't block promotion when Compile and Package pass.
Quality states
Each artifact in the build history shows one of these states.
| State | Meaning |
|---|---|
| Ready | The required checks passed. This SDK can be published |
| Quality failed | A check failed. Its result says which |
| Quality pending | Checks are still running |
| Quality unverified | There is no report for this build |
When a language shows Source ready, Quality failed, its source can still be downloaded and published. Review the results before using it. Promotion is stricter: staging quality must pass first.
If a build has failed, troubleshooting lists the causes by check.
Downloading a build
Press Download to get a language's ZIP, or Copy download link to share it.
The link is permanent and needs no sign-in, so you can hand it to a customer or use it in a script. Your analytics counts each download, by language.
Anyone who has the link can download that build. Share it the way you'd share a public file.
Working from a terminal
Previews, builds, downloads and retries all work from the CLI. See SDK commands. octri lab run does the whole loop in one command and keeps each build's files, so octri lab diff can show what changed between two builds.
See CI setup.
Getting notified
The sdk.build_completed, sdk.build_failed, sdk.published and sdk.publish_failed webhook events can post to Slack, Discord or your own endpoint.
How many are kept
Each plan keeps a number of SDK versions. See plans and limits.