From f3ce0c609fee0c9962a67f74a3a66a773290c2b3 Mon Sep 17 00:00:00 2001 From: Dhruva Gole Date: Sun, 12 Oct 2025 17:58:50 +0000 Subject: [PATCH] ci: build: general improvements and size reduction Take inspiration from the Arduino's fork [1] to improve the CI for building and testing samples in the project by using the ci-base zephyr image to save on size. Use the new $MODULE_PATH to specify paths in the setup stages. [1] https://github.com/arduino/ArduinoCore-zephyr/blob/main/.github/workflows/build.yml Signed-off-by: Dhruva Gole --- .github/workflows/build.yml | 42 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index afe3fe3e3..0c404355c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,39 +4,53 @@ on: [push, pull_request] jobs: build: + name: Build Arduino-API Zephyr samples runs-on: ubuntu-latest - container: zephyrprojectrtos/ci:latest + container: zephyrprojectrtos/ci-base:latest env: CMAKE_PREFIX_PATH: /opt/toolchains + CCACHE_IGNOREOPTIONS: -specs=* + MODULE_PATH: ../modules/lib/Arduino-Zephyr-API + steps: - name: Checkout uses: actions/checkout@v4 with: - path: Arduino-Zephyr-API + fetch-depth: 0 + persist-credentials: false + path: subfolder + + - name: Fix module path, list needed HALs + run: | + mkdir -p $(dirname $MODULE_PATH) && mv subfolder $MODULE_PATH + + - name: Setup Zephyr project + uses: zephyrproject-rtos/action-zephyr-setup@v1 + with: + toolchains: arm-zephyr-eabi + manifest-file-name: ${{ env.MODULE_PATH }}/west.yml + enable-ccache: false + + - name: Add manifest path as module + run: | + echo EXTRA_ZEPHYR_MODULES="$(pwd)/$MODULE_PATH" >> $GITHUB_ENV - name: Initialize run: | - west init -l Arduino-Zephyr-API/ - west update - git clone https://github.com/arduino/ArduinoCore-API.git ArduinoCore-API - mkdir -p modules/lib - ln -s Arduino-Zephyr-API modules/lib/ - cp -rfp ArduinoCore-API/api Arduino-Zephyr-API/cores/arduino/ + git clone https://github.com/arduino/ArduinoCore-API.git $MODULE_PATH/../ArduinoCore-API + cp -rfp $MODULE_PATH/../ArduinoCore-API/api $MODULE_PATH/cores/arduino/ - name: Build fade - working-directory: Arduino-Zephyr-API run: | - west build -p -b arduino_nano_33_ble/nrf52840/sense samples/fade + west build -p -b arduino_nano_33_ble/nrf52840/sense $MODULE_PATH/samples/fade - name: Build i2cdemo - working-directory: Arduino-Zephyr-API run: | - west build -p -b arduino_nano_33_ble/nrf52840/sense samples/i2cdemo + west build -p -b arduino_nano_33_ble/nrf52840/sense $MODULE_PATH/samples/i2cdemo - name: Build adc - working-directory: Arduino-Zephyr-API run: | - west build -p -b beagleconnect_freedom/cc1352p7 samples/analog_input + west build -p -b beagleconnect_freedom/cc1352p7 $MODULE_PATH/samples/analog_input - name: Archive firmware uses: actions/upload-artifact@v4