Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 3.53 KB

BUILD.md

File metadata and controls

69 lines (46 loc) · 3.53 KB

Build Guide

We use semantic versions for Nuvolaris releases.

Releases are in form MAJOR.MINOR.PATCH, for example 0.1.2

Prerelease are in form MAJOR.MINOR.PATCH-MILESTONE.DATETAG

where the DATETAG is generated by the command date +%y%m%d%H, for example 0.2.0-trinity.22030816

Artifact

The following artifacts are part of Nuvolaris:

  • the nuv CLI, a multiplatform binary written in go. The stable releases are published as Releases in the github.com/nuvolaris/nuvolaris repository, while pre-releases and snapshots are in github.com/nuvolaris/nuvolaris-cli

  • the docker images are published as packages of ghcr.io/nuvolaris, and they are, currently:

    • nuvolaris-devkit, used for the development environmet
    • nuvolaris-operator, the Kubernetes operator that installs and manges OpenWhisk
    • openwhisk-standalone, the actual OpenWhisk, built as a single node controller+invoker executable

Currently, the nuvolaris-devkit is the development environment that VSCode starts when it opens the source tree. The nuv cli deploys in Kubernetes the nuvolaris-operator and downloads and installs the other images, currently only the openwhisk-standalone.

Note that there are other images, like CouchDB and the openwhisk runtimes that are downloaded from Docker Hub. In future we will build and provide our image.

GitHub actions

There are 3 workflows in github actions in the various repos with those names:

  • check is activated by every push, and only checks licenses
  • image is activated by any tag starting with a number, and builds and push an image in the ghcr.io/nuvolaris registry
  • release is activated by any tag starting with v and releases a go binary.

Building nuv

The repo containers source code of nuv is github.com/nuvolaris/nuvolaris-cli (here referred as upstream)

To build a new pre-release, generate a tag with task tag (that generas one tag in format MAJOR.MINOR.PATCH-MILESTONE.DATETAG) and then git push upstream --tags.

When you want a stable release tag manually as vMAJOR.MINOR.PATCH (note the v that distinguished the build of a binary from the build of an image, that always starts with a number).

This will build the artifact in nuvolaris-cli. To actually rebuild the artifact in the main nuvolaris repo, just push the same tag in the nuvolaris/nuvolaris repo

Building images

  • to build the nuvolaris-devkit image, create a tag starting with a number in the nuvolaris/nuvolaris repo and push it.

  • to build the openwhisk-operator image, create a tag starting with a number in the nuvolaris/nuvolaris-controller repo and push it.

  • to build the openwhisk-standalone image, create a tag starting with a number in the nuvolaris/nuvolaris-controller repo and push it.