Thank you for all your kind emails. It is, as always, a pleasure to contribute to Racket.
I spent some time discussing this Sam today which mentioned GitHub Actions. I had actually been part of GitHub Actions Beta and dismissed it straight away because initially they were not supporting self-hosted runners and there weren't many details on how free was the offer for public repos. Sam's point made me revisit the current status of GitHub Actions CI which just recently left Beta. It turns out, there are quite a few changes. A lot of the information I picked up comes from these references: https://www.youtube.com/watch?v=9EoNqyxtSRM https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners https://github.com/features/actions https://twitter.com/pocmatos/status/1195100718270681088 My understand stands as follows: - GitHub Actions provides CI free of charge (unlimited minutes) on public repositories on a variety of operating systems (Linux, Windows and MacOS) on x86_64; - GitHub Actions provides a self-hosted runner that runs on X86_64 and ARM devices; - GitHub Actions is highly integrated, as expected, in the workflow and uses as other services do, a yaml configuration file. - Pietro Albini, working on porting the Rust CI from Azure Pipelines to Github Actions mentioned that Azure and Actions are very similar. This is certainly a compelling argument towards using GitHub Actions. Also, we wouldn't have to pull from Python code for CI (which we would if we used Buildbot). As mentioned GitHub Actions are part of GitHub and very well integrated with the workflow. On one hand a part of me worries about vendor lockin with GitHub, but then again we are already so invested in GitHub that adding CI to the mix won't (I think) worsen the situation. There's however, the issue of supporting more architectures than GitHub Actions provides. My suggestion comes from my own experience with QEmu and what Rust is also doing. Lets come up with support tiers. We can have a tier where we compile, test and benchmark and other tiers where we only ensure Racket builds (for example with Rust, see https://forge.rust-lang.org/infra/docs/rustc-ci.html). We can certainly use GitHub Actions hosting to test on x86_64 on all supported OSes. We can then use my own CI server as well (to compile natively but also run cross-compilations and emulated testruns) and the self-hosted runner on my ARM boards. For architectures that are not supported by the github runner, we can cross compile. For those architectures for which I have boards, we can weekly (for example) run some scripts that compile and test natively (for example mipsel and riscv64). In the long run, as initially mentioned, the idea is to gather the information in a racket webapp dashboard (I discussed this briefly today with Jack Firth, who actually works in this area, and we will be discussing the architecture of this dashboard and integration with the CI system in the coming week). With a setup like this, there are few compelling reasons to design a system from scratch using Buildbot, so I am sold on the idea of moving forward with Actions. It is actually a good time. Next week, for family reasons, I will have extra free time on my hands and I am sure I can bring this proposal up to speed and have some more information towards the end of next week. What are everyone's thoughts? If nobody complains loudly, I will follow through and bring up a draft PR, with a Github Actions CI system during next week. Kind regards, -- Paulo Matos -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/87a78x5b28.fsf%40linki.tools.