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โ
- Install Earthly, a build automation tool. It uses our Earthfile to reproducibly build the release files and Docker images.
- Be logged into Docker Hub with an account that can push to
gabekangas/owncastandowncast/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.