aengelke / instrew

A high performance LLVM-based dynamic binary instrumentation framework
GNU Lesser General Public License v2.1
223 stars 36 forks source link

add release automation #13

Open mcrossen opened 4 months ago

mcrossen commented 4 months ago

similar to my other pull request except improved to support arm through docker.

benefits

The readme file doesn't give a lot of info on what dependencies (libssl, llvm, etc) are necessary to build the project. I figured it out (before seeing the .builds directory) and wanted to save others some trouble.

how

There's two sides to this automation: docker and github actions

First, docker sets up a reusable environment to build instrew under. This is portable to other people's machines. Docker combined with an emulation layer is also used to build the ARM release.

Second, github actions automates the process of building and publishing releases to github's releases page. The automation currently doesn't trigger according to any schedule; instead, there's a button in the 'actions' tab of the repo anytime you want to release a new version. It deletes the old version automatically to not count against your quota. If you want, I can change this behavior or I can set it up to automatically release weekly, monthly, when main branch is pushed or something.