Skip to content

ci: add riscv64 native build workflow#3546

Open
gounthar wants to merge 1 commit intoeclipse-mosquitto:developfrom
gounthar:feat/riscv64-ci-upstream
Open

ci: add riscv64 native build workflow#3546
gounthar wants to merge 1 commit intoeclipse-mosquitto:developfrom
gounthar:feat/riscv64-ci-upstream

Conversation

@gounthar
Copy link

Thank you for contributing your time to the Mosquitto project!

  • Have you signed the Eclipse Contributor Agreement, using the same email address as you used in your commits?
  • Do each of your commits have a "Signed-off-by" line, with the correct email address? Use "git commit -s" to generate this line for you.
  • If you are contributing a new feature, is your work based off the develop branch?
  • Have you successfully run make test with your changes locally?

What does this PR do?

Adds a non-blocking CI job that builds Mosquitto on native riscv64 hardware using RISE Project GitHub Actions runners (ubuntu-24.04-riscv). The job uses continue-on-error: true so it does not block existing CI.

Evidence

Validated on RISE native riscv64 runner:

Also validated on BananaPi F3 (SpacemiT K1, rv64gc, 8 cores @ 1.6 GHz):

  • Build time: 1m30s wall, 9m CPU

No source changes needed. The workflow installs build dependencies and runs the standard cmake build.

Related

Add a non-blocking CI job that builds Mosquitto on native riscv64 hardware
using RISE Project runners (ubuntu-24.04-riscv).

Build validated: Mosquitto 2.1.2 compiles in ~1m38s with all binaries
(mosquitto, mosquitto_pub, mosquitto_sub) working correctly.

Closes eclipse-mosquitto#3545

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@gounthar
Copy link
Author

A note on the ubuntu-24.04-riscv runner: this is a native riscv64 GitHub Actions runner provided by the RISE Project (https://riseproject.dev), an initiative by RISC-V International to support the open source ecosystem.

To enable it on the eclipse-mosquitto org, a maintainer would install the RISE runners GitHub App: https://github.com/apps/rise-risc-v-runners

It's free for open source projects and several projects already use it (numpy, Apache Arrow, llama.cpp). The runner is a Scaleway EM-RV1 bare-metal riscv64 server running Ubuntu 24.04.

Without the app installed, this workflow would simply show as "queued" with no available runner. The continue-on-error: true ensures it never blocks other CI jobs regardless.

If installing the app isn't desirable, an alternative would be using QEMU emulation via docker/setup-qemu-action on a standard runner, though build times would be significantly longer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant