| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- # Copyright (C) 2019 Intel Corporation. All rights reserved.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- name: compilation on nuttx
- on:
- # will be triggered on PR events
- pull_request:
- types:
- - opened
- - synchronize
- paths:
- - ".github/workflows/compilation_on_nuttx.yml"
- - "build-scripts/**"
- - "core/**"
- - "!core/deps/**"
- - "product-mini/**"
- - "samples/**"
- - "!samples/workload/**"
- - "tests/wamr-test-suites/**"
- - "wamr-compiler/**"
- # will be triggered on push events
- push:
- branches:
- - main
- - "dev/**"
- paths:
- - ".github/workflows/compilation_on_nuttx.yml"
- - "build-scripts/**"
- - "core/**"
- - "!core/deps/**"
- - "product-mini/**"
- - "samples/**"
- - "!samples/workload/**"
- - "tests/wamr-test-suites/**"
- - "wamr-compiler/**"
- # allow to be triggered manually
- workflow_dispatch:
- # Cancel any in-flight jobs for the same PR/branch so there's only one active
- # at a time
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
- env:
- WASI_SDK_PATH: "/opt/wasi-sdk"
- permissions:
- contents: read
- jobs:
- build_iwasm_on_nuttx:
- runs-on: ubuntu-latest
- container:
- image: ghcr.io/apache/nuttx/apache-nuttx-ci-linux@sha256:d9261eacf6c6ebe656c571757751c803e8f04c3ae9b820320a5ea5dd57b7205a
- strategy:
- matrix:
- nuttx_board_config: [
- # x64
- "boards/sim/sim/sim/configs/nsh",
- # cortex-m0
- "boards/arm/rp2040/raspberrypi-pico/configs/nsh",
- # cortex-m7
- "boards/arm/stm32h7/nucleo-h743zi/configs/nsh",
- # cortex-m33
- "boards/arm/rp23xx/raspberrypi-pico-2/configs/nsh",
- # riscv32gc
- "boards/risc-v/qemu-rv/rv-virt/configs/nsh",
- # riscv64gc
- "boards/risc-v/qemu-rv/rv-virt/configs/nsh64",
- # arm64
- "boards/arm64/qemu/qemu-armv8a/configs/nsh",
- ]
- wamr_config_option:
- - "CONFIG_INTERPRETERS_WAMR_AOT"
- - "CONFIG_INTERPRETERS_WAMR_FAST"
- - "CONFIG_INTERPRETERS_WAMR_CLASSIC"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI"
- - "CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI"
- steps:
- - name: Checkout NuttX
- uses: actions/checkout@v6
- with:
- repository: apache/nuttx
- ref: 09a71ec7c16c43398d5acbdcbeee7b08736c3170
- path: nuttx
- - name: Checkout NuttX Apps
- uses: actions/checkout@v6
- with:
- repository: apache/nuttx-apps
- ref: 6bd593459c4af3cef325c3d22bccd5537a8ed755
- path: apps
- - name: Checkout WAMR
- uses: actions/checkout@v6
- with:
- repository: ${{ github.repository }}
- path: apps/interpreters/wamr/wamr
- - name: Configure WAMR
- working-directory: nuttx
- run: |
- tools/configure.sh ${{ matrix.nuttx_board_config }}
- kconfig-tweak --disable CONFIG_RP2040_UF2_BINARY
- kconfig-tweak --disable CONFIG_RP23XX_UF2_BINARY
- kconfig-tweak --enable CONFIG_PSEUDOFS_SOFTLINKS
- kconfig-tweak --enable CONFIG_INTERPRETERS_WAMR
- kconfig-tweak --enable CONFIG_INTERPRETERS_IWASM_TASK
- kconfig-tweak --set-val CONFIG_INTERPRETERS_WAMR_PRIORITY 100
- kconfig-tweak --set-val CONFIG_INTERPRETERS_WAMR_STACKSIZE 8192
- for x in ${{ matrix.wamr_config_option }}; do
- kconfig-tweak --enable $x
- done
- - name: Build
- working-directory: nuttx
- run: make -j$(nproc) EXTRAFLAGS=-Werror
- - name: Checkout Bloaty
- uses: actions/checkout@v6
- with:
- repository: google/bloaty
- submodules: recursive
- path: bloaty
- ref: 34f4a66559ad4938c1e629e9b5f54630b2b4d7b0
- - name: Build Bloaty
- run: |
- cmake -Bbuild -GNinja bloaty
- cmake --build build
- - name: Size Report
- run: |
- echo "Build target: ${{ matrix.nuttx_board_config }}"
- echo "WAMR build config: ${{ matrix.wamr_config_option }}"
- echo "WAMR size:"
- build/bloaty -d compileunits --source-filter wamr nuttx/nuttx
- echo "libc-builtin size (if enabled):"
- build/bloaty -d compileunits --source-filter libc-builtin nuttx/nuttx
- echo "libc-wasi size (if enabled):"
- build/bloaty -d compileunits --source-filter libc-wasi nuttx/nuttx
|