[Openmcl-devel] basic GitHub action for building CCL lisp kernel?

R. Matthew Emerson rme at acm.org
Sat Aug 12 22:11:07 PDT 2023



> On Aug 10, 2023, at 9:10 PM, R. Matthew Emerson <rme at acm.org> wrote:
> 
> I think it would be useful have some kind of automated system that can compile the CCL lisp kernel (a C and assembly language program) on all of the platforms and report whether that worked.
> 
> So, if there are any changes in $repo/lisp-kernel, I’d like to trigger an automated build of all the lisp kernel platforms that I can.
> 
> Does anyone have experience doing this with GitHub Actions? If so, would you be willing to offer some tips?
> 
> Years ago, I had Buildbot set up and running fairly well, but I don’t want to spend time on that right now, especially if I can leverage GitHub services.
> 
> My long-term dream would be to have an automated way to make release binaries.  As it stands, I just got through building and packaging the 1.12.2 release for all six platforms by hand. But I’d be happy to start with baby steps.

I spent some time today on this.

First of all, my sample repository that includes a GitHub workflow to build a C program for several operating systems is https://github.com/xrme/actions-test

In particular, the workflow yaml file is https://github.com/xrme/actions-test/blob/main/.github/workflows/lisp-kernel.yaml

GitHub supports Linux, Mac, and Windows action runners. I think that the only supported architecture on GitHub-hosted runners in x86_64.

It’s possible to host one’s own runners, but the runner software doesn’t support all platforms of interest (in particular, FreeBSD and illumos). On the other hand, a self-hosted runner could run on 32-bit ARM or 64-bit ARM.

https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners

It seems to me that GitHub actions are a quick win for Linux/x8664 and macOS/x8664.

Windows/x8664 and Windows/x8632 look pretty good too; installing the MSYS2 environment seems like it’s easy & reasonable.

Linux/x8632 can work, although it’s necessary to "apt install gcc-multilib”.  That seems a bit inefficient to do every time, especially on a free service, but maybe it’s not too bad.

I’d like to have Buildbot running again so that I could cover all the ports, but the GitHub actions could, I hope, be useful as a partial solution.



More information about the Openmcl-devel mailing list