Skip to content

Support arm64 arch for ROS2 Rolling #495

Support arm64 arch for ROS2 Rolling

Support arm64 arch for ROS2 Rolling #495

name: rclnodejs - Linux Build and Test
on:
push:
branches:
- develop
- kilted
- jazzy
- humble-hawksbill
pull_request:
branches:
- develop
- kilted
- jazzy
- humble-hawksbill
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
identify-ros-distro:
uses: ./.github/workflows/identify-ros-distro.yml
build:
needs: identify-ros-distro
# Use different runners based on the architecture (x64 or arm64)
runs-on: ubuntu-${{ matrix.ubuntu-version }}
container:
image: ${{ needs.identify-ros-distro.outputs.linuxos }}
strategy:
fail-fast: false
matrix:
node-version: [20.X, 22.X, 24.X]
architecture: [x64]
ubuntu-version: [latest]
# Add arm64 support with a specific runner
include:
- architecture: arm64
node-version: 20.X
ubuntu-version: latest-arm64
steps:
- name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
architecture: ${{ matrix.architecture }}
- name: Setup ROS2
uses: ros-tooling/[email protected]
with:
required-ros-distributions: ${{ needs.identify-ros-distro.outputs.distro }}
use-ros2-testing: true
- name: Install test-msgs on Linux
run: |
sudo apt install ros-${{ needs.identify-ros-distro.outputs.distro }}-test-msgs
- uses: actions/checkout@v4
- name: Build and test rclnodejs
run: |
source /opt/ros/${{ needs.identify-ros-distro.outputs.distro }}/setup.bash
echo "Building and testing rclnodejs on ${{ matrix.architecture }} architecture"
npm i
npm run lint
npm test
npm run clean
- name: Coveralls Parallel
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: run-${{ matrix.node-version }}-${{ matrix.architecture }}
parallel: true
finish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true