BigJk / snd

Sales & Dungeons — Thermal Printer as D&D / TTRPG Utility
https://sales-and-dungeons.app/
MIT License
474 stars 17 forks source link

Add build via Github Actions #24

Closed nbadal closed 1 year ago

nbadal commented 1 year ago

This automates the previously local build process using cmd/releaser, allowing for parallelization and additional checks/automations in the future!

How this works

To trigger a release build, push a tag starting with v. This will kick off a build of the frontend, then a matrix build of the various OSes, and finally zip up the results into a draft release on Github.

Build changes

Replacing the cmd/releaser script, build.sh can be run to create an individual build. $GOOS and $GOARCH are used to determine the build target, and the $SND_TAGS env var can be used to specify electron/libusb/etc

Result

image image

TODO:

BigJk commented 1 year ago

As you already expect cmd/releaser is just like a simple cross-build release script. If we could replace that with a automated CI/CD pipeline that would be awesome. Because of libusb I didn't take the time yet to check possible solutions out. Ultimately it might be great to also have libusb and non-libusb builds for darwin and linux too. Especially in regards to CUPS creating problems while libusb isn't.

Check this Issue if you need more information about building libusb on windows: https://github.com/google/gousb/issues/100 The DLL should be included in the package and I just copy it over in cmd/releaser

nbadal commented 1 year ago

Some notes:

Windows DLL: https://packages.msys2.org/package/mingw-w64-x86_64-libusb

nbadal commented 1 year ago

@BigJk this is now ready for review! if/when it's merged, feel free to squash it into a single commit - I had to push a lot of commits to test various changes 😅

BigJk commented 1 year ago

Thanks a lot for your work! A unified and easy release process helps immensely. After I verified that the windows builds work I will merge it 😄