Skip to main content

Creating a release

Owncast ships as standalone archives you can download and install, and as Docker images pulled from Docker Hub. The original image was gabekangas/owncast, now deprecated in favor of owncast/owncast. For now both still get updated on each release. We can drop the old one later.

Dependenciesโ€‹

  1. Install Earthly, a build automation tool. It uses our Earthfile to reproducibly build the release files and Docker images.
  2. Be logged into Docker Hub with an account that can push to gabekangas/owncast and owncast/owncast.

Build the release filesโ€‹

Create the release archives for all architectures. Set a human-readable version in the version flag, such as 0.1.0, nightly, or develop. It identifies the binary when Owncast runs. The archives land in the dist directory.

earthly +package-all --version="0.1.0"

To build a single architecture and save time, specify the platform. For example, 64-bit amd64 Linux:

earthly +package --platform="linux/amd64"

Build and upload the Docker imagesโ€‹

Build and push with a list of tags. Tag the image with both the new version number and latest.

earthly -P --push +docker-all --images="owncast/owncast:0.1.0 owncast/owncast:latest gabekangas/owncast:0.1.0 gabekangas/owncast:latest" --version="0.1.0"

Omit --push to build and test the image locally without pushing.

Tag and create the releaseโ€‹

Create a GitHub Release with a tag of the new version. Paste in the changelog and upload the archives from the build step.

Update the installer scriptโ€‹

Once the archives are uploaded, public, and confirmed working, point the installer at the new release. Edit OWNCAST_VERSION in install.sh.

Doneโ€‹

Once the installer points at the new version and Docker Hub has the new latest images, the release is public.