CI, Binaries, and Releases

What CI does

The existing CI workflow:

  • runs lint and tests
  • builds one-file executables with PyInstaller on Linux and Windows
  • uploads build artifacts in each run
  • publishes release assets on tags like v0.2.0
  • publishes multi-arch Docker images to Docker Hub on tags like v0.2.0

Published release files:

  • hawkbit-linux-x86_64
  • hawkbit-windows-x86_64.exe

Published Docker image tags:

  • <dockerhub-user>/hawkbit-cli:vX.Y.Z
  • <dockerhub-user>/hawkbit-cli:latest

Docker Hub publishing setup

The Docker workflow is defined in .github/workflows/docker.yml.

Configure repository secrets:

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN (Docker Hub access token)

Then push a Git tag:

git tag v0.2.0
git push origin v0.2.0

The workflow will build and push linux/amd64 and linux/arm64 images.

Local binary build

make build-binary
./dist/hawkbit --help