Create releases with pre-compiled binaries
dotenv is meant to be used as an executable, therefore, in order to simplify the installation process, we could provide pre-compiled binaries so end-users could just download and copy the binary instead of installing the whole package via stack or cabal.
Documentation
- https://help.github.com/en/github/administering-a-repository/creating-releases
- https://docs.travis-ci.com/user/deployment/releases/
References
- https://github.com/commercialhaskell/stack/releases
I've never done this before. I'd love to take this.
Hey @sestrella As we discussed, let's do this step incrementally. I think our final goal is to make dotenv binary work for the following operating systems:
- [x] Linux x86_64 (via #114)
- [x] Mac osX (via #117)
- [ ] Windows
- [x] Automate release notes (via #115 )
I'll keep you updated with any progress.
@CristhianMotoche sounds good to me, thank you for carrying this on.
@sestrella I'm trying to set the release notes. Here is my first attempt: https://github.com/stackbuilders/dotenv-hs/releases/tag/untagged-8972a8d79f11a59c973f
Two things here:
-
The advanced options of travis deploy didn't work, because formatting the
bodyisn't supported (tested it here). -
So, based on this issue, I followed the suggestion described here.
Let me know what you think.
Travis has the option to build on Mac OS and even Windows, I think. However, it cannot collect artifacts after builds. Info here. An option that Travis suggests is to set up a S3 bucket and push the artifacts there. And later, move those binaries from S3 to a GitHub release.
What do you think about that approach? /cc @sestrella @juanpaucar
@CristhianMotoche nice suggestion, in fact, that seems to be the way to go in some well-know packages such as stack. I think adding some deployment scripts - to build the binaries locally - would be a good idea.
Thanks to GH Actions the process has become very simple to upload the notes and generate the static binary (see this release). I suggest not to generate the binaries for OS X or Windows since that will add extra complexity to our CI pipeline and also it hasn't been requested by any else so far. Therefore, let's close this issue. We can open a new one for each individual platform as needed. Thanks for rising the issue @sestrella