teleirc icon indicating copy to clipboard operation
teleirc copied to clipboard

Automate release process and binary builds

Open justwheel opened this issue 5 years ago • 4 comments

Discussed in 2020-10-11 meeting.


Summary

Automate the creation of multi-OS, multi-arch binaries of TeleIRC releases

Background

Is your feature request related to a problem? Please describe:

When we release TeleIRC, the person cutting the release manually builds the Go binary and uploads it to GitHub. This is OK, but an end-user who is not using the same OS and architecture as the person cutting a release must build their own binary. Unwieldy for the average person!

Describe the solution you'd like:

Automatically build binaries for the most common architectures and operating systems.

Details

We checked out fellow Go project Matterbridge to see how they do it. Matterbridge releases include countless binaries for multiple operating systems and different architectures. It appears they have some automation for this, but it is unclear how it works:

Outcome

Make TeleIRC binaries available to end-users on a variety of platforms without making end-users manually build/compile TeleIRC

justwheel avatar Oct 11 '20 20:10 justwheel

@Zedjones mentioned this in the last developer meeting, and I wanted to make note of it here before I forgot: Inject build-time variables with Golang

justwheel avatar Oct 20 '20 01:10 justwheel

Discussed in 2020-11-15 meeting.


@Zedjones is leading the effort to explore GitHub Actions as a tool to help us figure out a new C.I. pipeline and help automate the release process. Over the past few weeks, we have spent time on the release process since we are working to provide iterative, regular releases. This has bubbled up in priority, and @Zedjones was needing a break from all the unit tests. 😀

We'll check back in on this at the end of the sprint on 29 November 2020.

justwheel avatar Nov 16 '20 04:11 justwheel

@Zedjones has done a mock of what GH Actions could look like with TeleIRC. Overall, this looks very promising and I am +1 to moving off TravisCI.

Tjzabel avatar Nov 22 '20 16:11 Tjzabel

In addition to the GH actions, we would like to support these architectures on releases:

  • Darwin-64bit
  • Windows-64bit
  • linux-64bit
  • arm-64bit
  • openbsd-64bit
  • freebsd-64bit

Tjzabel avatar Nov 29 '20 16:11 Tjzabel