Release Binaries & Source Tarballs With Submodules #31
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Telodendria/Telodendria#31
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
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:
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.
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:
Note that Cytoplasm also needs CI, and that Telodendria CI should pull Cytoplasm release tarballs from Gitea.
I just set up an Alpine v3.19 x86_64 runner. I will add more runners once I have thoroughly debugged CI scripts.
Okay, CI is up and running. I just have figure out what I want to do about release binaries, because currently we would have to ship both the
telodendria
binary andlibCytoplasm.so
, unless I can figure out an easy way to bakelibCytoplasm.a
into thetelodendria
binary. Then our only dependency will be on the libc and OpenSSL/LibreSSL, which is fine because those are both typically built-in to the system.I also want to generate a source tarball that includes Cytoplasm. By default, Gitea releases will not include submodules, so we will need a workflow that builds a source tarball for the created tag and attaches it to the Gitea release.
Continuous Integration & Release Binariesto Release Binaries & Source Tarballs With SubmodulesJust noting down something that may be worthwhile if we ever generate static binaries, because I did notice hurdles trying to run Cytoplasm-based projects with a static musl and OpenSSL (see this Parsee issue).
I think that if static Linux builds are to be done, we may just want to investigate into smaller SSL libraries(like possibly MbedTLS/wolfSSL) to do that job.