JamieSinn / CSA-USB-Tool

Tool to download all files in a given FIRST season needed to support teams.
MIT License
105 stars 36 forks source link

GitHub actions release process #52

Open JamieSinn opened 2 years ago

JamieSinn commented 2 years ago

It'd be nice to have GitHub actions to handle the release process, where on a new tag being pushed - it'll run a build and publish the CSAUSBTool.Base to GH Packages/NuGet, along with final output binary being built into an installer.

fletch3555 commented 2 years ago

@JamieSinn, I could probably help with this. It's been a while since I've touched anything .NET, so if you could outline the build process, I could put together a github actions for it

JamieSinn commented 2 years ago

That'd be awesome - currently there's just a build for CI tests to ensure that we don't break functionality: https://github.com/JamieSinn/CSA-USB-Tool/blob/master/.github/workflows/dotnet.yml

Ideally the build process would work like this:

I'm debating using Innosetup - but because this is designed to run in portable mode too - I don't want to make it a requirement. TBD on that.

fletch3555 commented 2 years ago

Well, I know some of those words.... (as I said, been out of the .net world for most of the last decade).

Having said that, triggering on push is incredibly easy (and limiting it to a specific commit message should be easy enough). Zipping up the output should be easy enough. Pushing a release with artifacts can be done with https://github.com/softprops/action-gh-release), though getting the latest release and auto-incrementing the release number is a bit more complicated (I haven't found a pre-built action to do it.. yet).

Would you be open to manually pushing the tag (via git or the Github UI) and having that trigger the action to build and attach the zip?

I'm not familiar with Innosetup. How would it change things?

If you want to chat about it more synchronously, feel free to ping me on the CSA slack