Support arm64 arch for ROS2 Rolling #495
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |