Continuous Integration & Release Binaries #31
It would be great to get some continuous integration going for Telodendria. @lda had a nifty Matrix bot that would run CI on submitted patches, but alas, that no longer works.
I can think of two options for CI:
- Use Gitea Actions. This would probably be preferable as it keeps everything tightly integrated on our Gitea instance, but currently our Gitea is too old (v1.18.5). When the OpenBSD port is updated, I will be sure to upgrade our instance so we can take advantage of new features.
- Deploy a Jenkins instance that isn't dependent on the version of Gitea being used.
The goal is to test builds on different platforms automatically, of course, but I also would like to be able to ship binaries with releases, and CI would be a great way to ship binaries for a large number of platforms. I made a note in
install.md that will have to be updated when we get this figured out.
Gitea has now been updated to a sufficiently high version, and I have enabled Actions. I have yet to set up any runners, but we could theoretically begin writing an actions file that runs CI on the code and generates binary releases.
Just started playing around with actions a bit on a new branch.
I haven't gotten anything beyond a job to setup a basic build environment(gcc/clang+make+openssl/libressl(if not on Debian/Ubuntu)) though, everything around here is untested.
Let's make a list here of all the OS/platform combinations we want to build Telodendria on.
- FreeBSD (amd64)
- OpenBSD (amd64)
- NetBSD (amd64)
- Debian (Linux + glibc) (amd64)
- Alpine (Linux + musl) amd64)
- Windows (amd64)
Note that Gitea's
act_runner must support the platform. Theoretically, anywhere Go is supported should work.
Feel free to add more in the comments here. I don't have access to any other architectures than amd64. I do have 2 Raspberry Pis, which could host runners for two platforms for arm64. That might be kind of nice.
We will want workflows for all of the following:
- On Push: Just compile everything and spit out any warnings
- On Release: Package up binaries nicely and attach them to the release.
No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?