Skip to main content

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

References