webui-dev / webui

Use any web browser or WebView as GUI, with your preferred language in the backend and modern web technologies in the frontend, all in a lightweight portable library.
https://webui.me
MIT License
2.9k stars 164 forks source link

Optimize CI #168

Closed ttytm closed 1 year ago

ttytm commented 1 year ago

This is a workflow strategy I developed and started to incorporate into several projects recently.

It splits the platform workflows into their dedicated files. Through using callable workflows and triggering them from one master CI file it keeps all jobs organized in one Workflow and visualizes it nicely.

This is what it would result in: https://github.com/ttytm/webui/actions/runs/5930971332

The change comes with a little performance benefit as the setup jobs are split and consecutive jobs don't need to wait for all platforms to be setup. Another little benefit from this is that when changes are added that make a setup for one platform fail it would continue for other platforms.

AlbertShown commented 1 year ago

Look very interesting 👍

ttytm commented 1 year ago

I'll also add a fix for the release step here.

Together with @hassandraga's recent fix for windows MSCV this PR is not far from closing #134. What's left:

I created a test release on the fork based on the changes. This is the current state: https://github.com/ttytm/webui/releases/tag/v0.0.1-test

I think the PR is good to merge already as it is. If you like to merge it and fix the open tasks separately please go ahead :+1:. Else I'll see what I can do tomorrow night or the next day.

hassandraga commented 1 year ago

This is a very interesting feature to add to this repo, many people open issues just asking where to download safe pre-built binaries for their platform. I'm looking forward to finishing this PR. Many thanks @ttytm 👍

linux-clang-x64: OK linux-gcc-x64: OK macos-clang-arm: OK macos-clang-x64: Missing .dylib file windows-gcc-x64: Has nul and .o files windows-msvc-x64: OK webui-0.0.1-test: OK

ttytm commented 1 year ago

Checking on https://github.com/webui-dev/webui/actions/runs/5951659214?pr=168 .dylib is included for macos x64

hassandraga commented 1 year ago

Thank you for the macOS fix. We still need to fix the nul file and *.o in the Windows GCC archive.

ttytm commented 1 year ago

Outputs ref: https://github.com/webui-dev/webui/actions/runs/5978637716?pr=168

hassandraga commented 1 year ago

Seems all archives are correct now 👌 Thank you @ttytm