cross-platform-actions / action

Cross-platform GitHub action
MIT License
139 stars 19 forks source link

Using custom images? #10

Closed epsilon-0 closed 4 months ago

epsilon-0 commented 2 years ago

Can we use user provided QEMU qcow2 files? Currently the action only has OpenBSD 6.9 available, I have a setup which generates OpenBSD current images on a weekly basis and I want to be able to use those for the action.

Is this possible or supported?

Thanks!

jacob-carlborg commented 2 years ago

This is currently not supported. I guess it should be possible to add support for custom images. But it would put more responsibility on the user. The GitHub action currently expects some things in how the images are setup, to minimize work that needs to be done at runtime. The simplest way to make sure the setup is the same would be to base the custom images on the official ones. I don't know how you're currently generating your OpenBSD images.

epsilon-0 commented 2 years ago

My workflow is a bit different for generating the images (as I only need it for my own setup and don't need to be that general). I create a qemu guest image for openbsd manually and have a cron job on a host (gentoo) which runs sysupgrade -s inside the guest to update it to latest snapshot.

I use it for my github actions here - https://github.com/OBSD-Homelab/OBSD-Homelab/runs/6636599680?check_suite_focus=true. It is not the prettiest but it does get the job done.

If more details could be given about what the requirements for the images are, it would be helpful in creating custom ones.

jacob-carlborg commented 2 years ago

If more details could be given about what the requirements for the images are, it would be helpful in creating custom ones.

At a high level, this is what is required:

Then there are a couple of additional things, depending on what features of the action you're using. For all the details, see the openbsd-builder repository. Here are some files of interest to look at in the repisotiry:

jacob-carlborg commented 2 years ago

BTW (for a wider audience), as far as I see it, there are three use cases for custom images:

epsilon-0 commented 2 years ago

So, I have forked the builder and made it upload daily snapshots for openbsd - https://github.com/OBSD-Homelab/openbsd-builder/releases/tag/current For now I've removed some of the provisioning things that are there, as I didn't need them personally, but they should be easy enough to add back.

Maybe this can help add support for snapshots here.

jacob-carlborg commented 1 year ago

It's now possible [1] to use custom VM images, but only existing operating systems , architectures and versions are supported.

Is this close enough to what you had in mind?

[1] https://github.com/cross-platform-actions/action/releases/tag/v0.18.0

epsilon-0 commented 1 year ago

Yes, that should cover it. I'll try it out with the image that I am building here - https://github.com/OBSD-Homelab/openbsd-builder/releases/tag/current It builds the latest rolling release of openbsd (called current) image every day. That image should be possible to use with this action, I'll let you know how it goes by eow.

jacob-carlborg commented 4 months ago

Closing this as fixed. See https://github.com/cross-platform-actions/action/issues/10#issuecomment-1666846767.