syswe / ntop

ntop is an open source tool that allows you to visually and clearly see the status of all your nodes and filtered pods on Kubernetes stages.
Apache License 2.0
27 stars 2 forks source link

[FEATURE] Automated releasing for new versions with goreleaser #33

Open syswe opened 6 months ago

syswe commented 6 months ago

Is your feature request related to a problem? Please describe. Yes, the current process of releasing new versions of the ntop plugin is manual and time-consuming. Each release requires manually compiling binaries for different platforms, packaging them, and uploading to GitHub releases. This manual intervention is prone to errors and inconsistencies, which can lead to delays in availability and potential issues for users trying to install or upgrade ntop.

Describe the solution you'd like I would like to automate the entire release process using GoReleaser. This tool should handle the compilation of binaries for supported platforms (Linux, Darwin, Windows, across amd64 and arm64 architectures), packaging these binaries along with necessary files (like LICENSE), and publishing them to GitHub releases. The process should be triggered automatically by tagging a new version in the Git repository. This automation would streamline releases, ensure consistency, and significantly reduce the time and effort required to make ntop available to users.

Describe alternatives you've considered An alternative considered was using CI/CD pipelines with custom scripts to automate parts of the release process. While this could automate compiling and uploading, it lacks the comprehensive features of GoReleaser, such as handling versioning, changelog generation, and creating platform-specific archives. Custom scripts would also require more maintenance effort as the project evolves.

Additional context Automating the release process with GoReleaser would not only improve the efficiency and reliability of the ntop release cycle but also allow contributors to focus more on development rather than operational tasks. By reducing the barrier to releasing new versions, we can ensure that ntop users have timely access to new features and fixes. Implementing this feature would be a significant step toward a more robust and developer-friendly project infrastructure.

syswe commented 5 months ago

I did write something and will push a plugin for krew but I've read that section in Krew docs "Import authentication plugins (Go) ref. https://krew.sigs.k8s.io/docs/developer-guide/develop/best-practices/" and we must use "k8s.io/client-go/plugin/pkg/client/auth" instead of client-go pkg and we should add -h/--help arguments before publish app with krew.