hermit-os / uhyve

A specialized hypervisor for Hermit.
Apache License 2.0
251 stars 29 forks source link

CI: Publish binaries using GitHub Actions on new tag #705

Closed n0toose closed 3 weeks ago

n0toose commented 3 weeks ago

Because of time constraints and because the workflow itself may need some additional work to support multiple operating systems without making individual releases for every target architecture and operating system, builds are only generated for Linux (amd64).

New releases are marked as "Drafts" by default, so as to allow maintainers to edit the text before publication.

Fixes https://github.com/hermit-os/uhyve/issues/256

n0toose commented 3 weeks ago

Sharing some screenshots that shows that my workflow actually (hopefully) works for posterity reasons, as I will delete those test runs in a bit. I made a last-minute change where I specified flags: --target x86_64-unknown-linux-gnu and --locked explicitly, but it works locally so it shouldn't cause a problem in the workflow.

Screenshots ![image](https://github.com/hermit-os/uhyve/assets/30193966/5147f9f0-f838-48f1-a00d-54e51c2d206d) ![image](https://github.com/hermit-os/uhyve/assets/30193966/9c660379-c7a0-4f27-a8ad-e9ef3404772e) ![image](https://github.com/hermit-os/uhyve/assets/30193966/1e5e9152-e8d1-4af0-ae7a-0e03d2a648e1) ![image](https://github.com/hermit-os/uhyve/assets/30193966/cbbb1949-3b2b-4231-b403-8db1ad5b8da3)
n0toose commented 3 weeks ago

Could you make this a separate release.yml workflow?

I considered this, but decided to put the elements necessary for a release in the same workflow so as to take advantage of the caching (although I'm not 100% sure if it makes a difference and you told me to remove the caching anyways). Will do.

mkroening commented 3 weeks ago

Note to self: Completely forgot about uhyve-interface, going to make sure that it is also packaged in the releases.

What do you mean? It's a library, not a binary. There's nothing to publish there, is it? We do crates.io releases manually, not in the CI.

n0toose commented 3 weeks ago

What do you mean? It's a library, not a binary. There's nothing to publish there, is it? We do crates.io releases manually, not in the CI.

Sorry, just had a brief moment of, well, the opposite of clarity. I'll update you when I'm done working on the .tar.gz task, I think that it's nearly done.

n0toose commented 3 weeks ago

I think it's done now, I caught myself making some trivial mistakes here because I spent more time on this than I'd have liked - I think I'll call it a day with this PR for now.

Just one small thing: I packaged the binary together with a copy of the licenses and the README.md, because of convention (and because why not? ^^).

codecov[bot] commented 3 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 68.06%. Comparing base (0ef8580) to head (f8c845e).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #705 +/- ## ======================================= Coverage 68.06% 68.06% ======================================= Files 20 20 Lines 2311 2311 ======================================= Hits 1573 1573 Misses 738 738 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

n0toose commented 3 weeks ago

great! hoping that nothing will explode 🤞🏻