yusukebe / revealgo

Markdown driven presentation tool written in Go!
MIT License
237 stars 22 forks source link

Automate cross-compilation process using goreleaser #18

Closed jossemarGT closed 2 years ago

jossemarGT commented 2 years ago

Hey @yusukebe.

As we discussed on #11, I have tackled the following enhancement:

  • Statically compile revealgo for Windows, MacOS and Linux operative systems (at least for x64 architectures)

We can continue doing the usual go build if we need to, but when the time comes to cross-compile multiple OS's and architectures gorelease is a better solution.

Please take a look, and let's discuss any rough edge.

PS: I do not think having submodules is as bad as we initially thought. At the end, we would need to move that logic into another tool, for example: a shell script that reads a file which does several curl commands.

jossemarGT commented 2 years ago

Oh yeah, I forgot to mention that gorelease already have built-in functionality for homebrew formula creation. But I rather prefer to explore those options in a separate PR, for order and peace of mind.

yusukebe commented 2 years ago

Hey @jossemarGT!

Using goreleaser is a very good solution to make multiple binaries I think so too. I succeeded to build the binaries with goreleaser on my local machine. It works fine.

If we ship revealgo as binaries do not use go get or go install commands, we don't need to include reveal.js and socket.io in this repository. It is no problem to use submobules because git submodule update command will be called only when we release revealgo.

gorelease already have built-in functionality for homebrew formula creation

Year! That's good.

I'll merge this PR. Thank you!