From 67b39a34b0100ea699931087e3468659df731059 Mon Sep 17 00:00:00 2001 From: TG Date: Mon, 24 Mar 2025 23:39:32 +0100 Subject: [PATCH] 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 --- .github/workflows/linux-arm.yml | 62 +++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/linux-arm.yml diff --git a/.github/workflows/linux-arm.yml b/.github/workflows/linux-arm.yml new file mode 100644 index 00000000000..8b6c7396328 --- /dev/null +++ b/.github/workflows/linux-arm.yml @@ -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