0011. CD pipeline for release process
Status
Accepted
Context
Currently (v1.0 at least), Carbon Aware SDK does not ship any binaries include client library even if release tag is set on GitHub. All of users who want to use the SDK have to build binaries for themselves.
For example, README.md for Carbon Hack 22 guides participants for Hackerthon can try Web API which is hosted on Azure, then we don't need to access all of sources of the SDK, however we have to access SDK source to build client library.
Carbon Aware SDK has client generator for some languages in src/clients, and discusses to add .NET library as NuGet package in ADR-0009. It is very useful for all SDK users / developers if both WebAPI and client libraries are shipped as binaries.
Decision
Ships both WebAPI container and client libraries when new release happens.
Fortunately, we can use
GitHub Packages
for this purpose, and we can integrate it with
release
event on GitHub Actions
(GHA).
In our case, we can ship following binaries via GitHub Packages:
- WebAPI container
- Client libraries
- .NET
- Java
- JavaScript
This ADR aims to ship them when new release happens automatically.
Environment-specific problems are unlikely to happen. All of release binaries will be built on GHA, and we can QA in its workflows. If some problems happen, we will investigate source code and/or GHA workflows.
Green Impact
Neutral