Zylann / godot_voxel

Voxel module for Godot Engine
MIT License
2.62k stars 246 forks source link

Consider using nightly.link for easier artifact downloading #588

Open OverloadedOrama opened 8 months ago

OverloadedOrama commented 8 months ago

Is your feature request related to a problem? Please describe. In order to download the module, one needs to be logged in to GitHub to download the generated artifacts.

Describe the solution you'd like https://nightly.link/ allows users to download the module without having to be logged in to GitHub, thus making it easier and more accessible to more people. It automatically provides a way to download the latest artifact, without maintainers having to do any extra steps, besides the initial authorization.

Describe alternatives you've considered I'm not aware of any alternatives, besides manually uploading the builds to somewhere else, which is extra work.

Zylann commented 8 months ago

Nightly.link is quite a hack and seems like it requires to install the Github App, which I don't use. There are workarounds mentionned in https://github.com/actions/upload-artifact/issues/51, which involves Github Releases, by having some special release tagged "nightly", which could get updated by Github Action jobs (example here). If something like that is possible I would prefer it, because it doesnt need to setup an extra service/middleman. However I have no idea how that would work with multiple workflow files each having their own artifact. Maybe there is a way to have a workflow run after specific ones, so it can grab their artifacts and generate/update a nightly Release?

Also, at some point (dunno when) I'll have to setup jobs to create Github Releases either way. Releases is the way Github expects builds to be provided. It's missing right now because I dont have a standard release schedule (only symbolic versions when Godot versions are released, which is a slow cycle) and because I just don't know yet how to create Releases using Github Actions (as opposed to publishing them by hand).

It should also be noted that builds right now would be the entire Godot Editor, which occupies a lot of space (especially when you consider all the variants, CPU X OS X template X float), and if you need any other module (or C# support) then you have to build it yourself anyways. GDExtension builds are the ideal goal to be provided this way, but they arent stable enough at the moment.


Since I just switched development to Godot 4.2, I increased the version, so I decided to create a release that contains all the artifacts currently built by Github Actions: https://github.com/Zylann/godot_voxel/releases/tag/v1.1.0, and will probably do more of these snapshots in the future. I plan to have more releases in the future with more prebuilt options (some are missing), right now I'm mostly annoyed that Github wants releases to be created by hand.