Skip to content

CI

CI #921

Workflow file for this run

name: CI
on:
pull_request:
branches:
- '**'
workflow_dispatch:
inputs:
name:
description: "Manual trigger"
schedule:
- cron: '0 4 * * *'
jobs:
micro_ros_nuttx_app:
runs-on: ubuntu-latest
container: ubuntu:24.04
strategy:
matrix:
nuttx_version: [releases/10.3]
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
path: repo
- name: Dependencies
shell: bash
run: |
apt update
export DEBIAN_FRONTEND=noninteractive
apt install -y --no-install-recommends git bison flex gettext texinfo libncurses5-dev libncursesw5-dev gperf automake libtool pkg-config build-essential gperf genromfs libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux kconfig-frontends gcc-arm-none-eabi binutils-arm-none-eabi python3-pip cmake libnewlib-arm-none-eabi
pip3 install catkin_pkg lark-parser colcon-common-extensions --break-system-packages
mkdir microros_nuttx; cd microros_nuttx;
git clone -b ${{ matrix.nuttx_version }} https://github.com/apache/incubator-nuttx.git nuttx
git clone -b ${{ matrix.nuttx_version }} https://github.com/apache/incubator-nuttx-apps apps
- name: Build
shell: bash
run: |
cp -r repo microros_nuttx/apps/microros
cd microros_nuttx/nuttx/
./tools/configure.sh -l b-l475e-iot01a:nsh
kconfig-tweak --enable CONFIG_MICROROSLIB
kconfig-tweak --enable CONFIG_MICROROS_EXAMPLE
kconfig-tweak --enable CONFIG_SERIAL_TERMIOS
kconfig-tweak --enable CONFIG_STM32L4_UART4
kconfig-tweak --enable CONFIG_STM32L4_UART4_SERIALDRIVER
kconfig-tweak --enable CONFIG_UART4_SERIALDRIVER
kconfig-tweak --set-val CONFIG_UART4_RXBUFSIZE 256
kconfig-tweak --set-val CONFIG_UART4_TXBUFSIZE 256
kconfig-tweak --set-val CONFIG_UART4_BAUD 115200
kconfig-tweak --set-val CONFIG_UART4_BITS 8
kconfig-tweak --set-val CONFIG_UART4_PARITY 0
kconfig-tweak --set-val CONFIG_UART4_2STOP 0
make -j$(nproc)
- name: Check binaries
run: |
(test -f microros_nuttx/nuttx/nuttx.bin) && true || false