roc-toolkit icon indicating copy to clipboard operation
roc-toolkit copied to clipboard

Add mips and mipsel toolchains to CI

Open gavv opened this issue 4 years ago • 0 comments

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:

  1. 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.

  2. Add a new group of jobs linux-mips to .github/workflows/build.yml and a new directory scripts/ci/linux-mips.

  3. 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.

  4. Update documentation:

    • https://roc-streaming.org/toolkit/docs/portability/supported_platforms.html
    • https://roc-streaming.org/toolkit/docs/portability/cross_compiling.html
    • https://roc-streaming.org/toolkit/docs/development/continuous_integration.html

gavv avatar May 23 '20 15:05 gavv