Skip to content

Adding otel tracing support and github action to push docker images on ghcr.io#6

Merged
zwindler merged 27 commits intodeezer:mainfrom
zwindler:main
Feb 15, 2026
Merged

Adding otel tracing support and github action to push docker images on ghcr.io#6
zwindler merged 27 commits intodeezer:mainfrom
zwindler:main

Conversation

@zwindler
Copy link
Copy Markdown
Collaborator

This pull request introduces a lot of changes, mainly adding otel tracing support (1.1 on my fork) and github action to push docker images on ghcr.io (1.2 on my fork)

Features:

  • OpenTelemetry tracing support (with otlp HTTP authentication if required)
  • migrated from Docker images to GitHub Container Registry with github action automation. Now deezer staff only have to git tag without the need to configure a docker token (for the docker push) && github token (for the release) on their local machine.

Chores:

  • updated dependencies (golang 1.25, all deps)
  • improved the documentation
  • removed arm64 support for now (not really working and adds a lot of complexity to build phase)
  • updated outdated goreleaser configuration parameters

Fixes:

  • some queries used string concatenation instead of prepared statements. The risk was minimal since variables were wrapped in itoa conversions but this is obviously very bad practice nevertheless
  • fixed double http server initialization which prevented proper software shutdown (CTRL-C was stuck in most cases))
  • goreleaser was not testing the whole code
  • fixed some static analysis errors in logging

OpenTelemetry Tracing Support:

  • Added OpenTelemetry tracing integration, including configuration options for enabling tracing, OTLP endpoint, and HTTP basic authentication via both environment variables and the new config.toml.default file. (internal/config/config.go, internal/config/loader.go, internal/middlewares/middlewareChain.go, internal/middlewares/tracing.go, config.toml.default, README.md) [1] [2] [3] [4] [5] [6] [7] [8]

Build and Release Workflow Modernization:

  • Added a GitHub Actions workflow (.github/workflows/release.yml) for automated releases, including building, testing, and publishing binaries and Docker images to GitHub Container Registry. (.github/workflows/release.yml, .goreleaser.yaml, README.md) [1] [2] [3] [4] [5]
  • Updated Go version requirements and dependency versions to Go 1.25 and latest libraries. (go.mod, Makefile, README.md) [1] [2] [3]

Docker and Configuration Improvements:

  • Switched Docker image publishing from Docker Hub to GitHub Container Registry, updated image references, and improved Docker build configuration. (.goreleaser.yaml, Dockerfile, README.md) [1] [2] [3]
  • Replaced config.toml with config.toml.default as the default config file, and improved documentation for configuration and prerequisites. (config.toml.default, README.md, Dockerfile) [1] [2] [3]

Documentation and Developer Experience:

  • Expanded README with detailed configuration options, build instructions, cross-compilation notes, and clarified licensing for bundled fonts. (README.md) [1] [2] [3] [4]
  • Added .gitkeep to datadir/ and improved comments for developer clarity. (datadir/.gitkeep)

Minor Code Quality Improvements:

  • Improved SQL query safety and error logging in GetROTI by using parameterized queries and structured logging. (internal/model/roti.go) [1] [2]

@zwindler zwindler requested a review from aleroyer November 24, 2025 09:53
@zwindler zwindler merged commit c5b1a2b into deezer:main Feb 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant