Add docker images with toolchains. We can start with mips and mipsel. It'd be also nice to have mips64el. Our images for toolchains are located here: https://github.com/roc-streaming/dockerfiles/.
We can start with any available toolchain for mips. Since OpenWrt boxes are a known real use case, we can start with an OpenWrt toolchain, e.g. mips-openwrt-linux-uclibc. AFAIK, OpenWrt SDK provides prebuilt toolchains, so we can just package it into a docker container like we're doing it here.
After merging a PR to dockerfiles repo, docker hub will build the toolchain images which we can use on CI and recommend to users in documentation.
Add a new group of jobs linux-mips to .github/workflows/build.yml and a new directory scripts/ci/linux-mips.
Add a script to the new directory for each mips toolchain we decided to support. The script should cross-compile Roc using the toolchain, and, ideally, run unit tests using qemu-user, just like we do it for ARM.
People are using are using Roc on OpenWrt/MIPS, but OpenWrt and MIPS are not covered with our CI. We should fill this gap.
Here is the documentation for our CI: https://roc-streaming.org/toolkit/docs/development/continuous_integration.html
Here are some similar tasks: #307, #353.
Steps:
Add docker images with toolchains. We can start with mips and mipsel. It'd be also nice to have mips64el. Our images for toolchains are located here: https://github.com/roc-streaming/dockerfiles/.
We can start with any available toolchain for mips. Since OpenWrt boxes are a known real use case, we can start with an OpenWrt toolchain, e.g.
mips-openwrt-linux-uclibc
. AFAIK, OpenWrt SDK provides prebuilt toolchains, so we can just package it into a docker container like we're doing it here.After merging a PR to dockerfiles repo, docker hub will build the toolchain images which we can use on CI and recommend to users in documentation.
Add a new group of jobs
linux-mips
to.github/workflows/build.yml
and a new directoryscripts/ci/linux-mips
.Add a script to the new directory for each mips toolchain we decided to support. The script should cross-compile Roc using the toolchain, and, ideally, run unit tests using qemu-user, just like we do it for ARM.
Update documentation: