akhramov/knast

Continious integration

Opened this issue · 5 comments

Set up pull requests pipelines using GH Action runners.

Since GitHub doesn't provide FreeBSD environments (actions/runner-images#2529), we need to set up Vagrant boxes for

  • latest release version (13.0 as of time of writing)
  • current development version (14.0-CURRENT as of time of writing)

The CI should have following capabilities

* [ ]  Research options (cirrus, github actions)

* [ ]  Setup pull requests pipelines

So I've used nearly damn every CI available out there. For freebsd your best choice is cirrus. Which is a little flakey and super slow, but gets the job done. Alternatively you use your own runner with GH actions/other CI, but that's complicated when you're testing something like what you have.

I ran bhyve VM with freebsd that I rollback everyday for tests in addition to cirrus.

I would love to help with the project.

Hey, thanks for the suggestions. I used cirrus in variety of projects, such as py-spy. It's slow but gets job done.

Actually I would like to dig into GH actions, alas GH has no FreeBSD runners available (actions/runner#385).

So we have two options here:

  • libjail-rs set up FreeBSD pipelines using mac-os runner + vagrant. It works, yep
  • I'm playing right now with launching a runner in a debian jail using knast. So, two birds one stone: having tests and dogfooding.

As a side note, we need to think about aarch64 tests, too. But that's for future, I don't have aarch64 hardware myself.

You can actually run GH runners on FreeBSD. It's runs on Mono. You will lose all the features that use docker, but it's still something.

Had no luck with running this on Mono, because as I understood nuget repositories do not contain necessary libraries for freebsd-x64 target.

Tried to use linuxulator with the original runner release. Runner runs and registers with github, yet jobs fail due to some shenanigans in dotnet SDK file copy routines.

Updated issue description, if you want to work on this one, please let me know. Alternatively, you can take a look at #12 or #13 :)

Thanks!

Sure, I'll work on this one.