chore: add linux-arm.yml workflow for Linux ARM builds

This commit introduces a new GitHub Actions workflow file (linux-arm.yml) for
building and testing Servo on an ARM runner (ubuntu-24.04-arm). The workflow sets up
the environment, builds Servo using an ARM target, and runs unit tests and bencher
jobs when enabled. Note that WPT tests are omitted for ARM as specified.

Signed-off-by: TG <ebiritg@gmail.com>
This commit is contained in:
TG 2025-03-24 23:39:32 +01:00
parent e9ed5dd023
commit 67b39a34b0

62
.github/workflows/linux-arm.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: Linux Arm Build and Test
on:
workflow_call:
inputs:
profile:
required: true
type: string
unit-tests:
required: true
type: boolean
build-libservo:
required: true
type: boolean
bencher:
required: true
type: boolean
jobs:
linux-arm:
name: Linux Arm
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Python
uses: ./.github/actions/setup-python
- name: Setup Rust Toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Bootstrap Dependencies
run: |
sudo apt update
./mach bootstrap --skip-lints
- name: Build libservo for ARM
run: |
# Build for ARM using the appropriate target
./mach build --release --target=aarch64-unknown-linux-gnu
- name: Run Unit Tests
if: ${{ inputs.unit-tests }}
run: |
./mach test-unit --release --target=aarch64-unknown-linux-gnu
- name: Build libservo with examples
if: ${{ inputs.build-libservo }}
run: cargo build --target=aarch64-unknown-linux-gnu -p libservo --all-targets
- name: Run Bencher
if: ${{ inputs.bencher }}
run: |
# Replace with the command to run your bencher tests
./mach test-bencher --release -- target=aarch64-unknown-linux-gnu