Skip to content

Commit

Permalink
GH Actions/quicktest: use Linux Arm64
Browse files Browse the repository at this point in the history
GitHub has made Linux arm64 runners generally available and running tasks on these images instead of the traditional images can deliver up to a 40% performance boost.

Based on our testing with this, the performance benefit is minimal to non-existent in our test setup and as the code base contains no `arm64` specific code/conditions, there is also no _functional_ benefit to running the tests on `arm64`.

Having said that, having some test runs on `arm64` can serve as an early detection system in case code changes would be needed in the future.

With this in mind and after some discussion about this, this commit ONLY introduces `arm64` in the `quicktest` workflow which is run for branch pushes (with the exception of pushes to `master`).

That means that in practice, it will run:
* When contributors with `push` rights push a branch directly to this server.
* When contributors without `push` rights, but who have enabled workflow runs on their own fork of the repo, push a branch to their fork.

The "normal" (PR) `test` runs will not use `arm64` at this time.

This does mean that a test run failure against `arm64` for a PR contribution via a fork _could_ go unnoticed, but as stated above: as the code contains no `arm64` specific conditions, this is deemed unlikely and is seen as an acceptable risk.

If needs be, this can be revisited in a later iteration.

Refs:
* https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/
* https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
* https://fraudmarc.com/post/arm64-vs-x86-64-for-php
  • Loading branch information
jrfnl committed Jan 30, 2025
1 parent c3c632a commit d63993a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/quicktest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ jobs:

strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest']
os: ['ubuntu-24.04-arm', 'windows-latest']
php: ['7.2', 'latest']

name: "QuickTest: PHP ${{ matrix.php }} (${{ matrix.os == 'ubuntu-latest' && 'Linux' || 'Win' }})"
name: "QuickTest: PHP ${{ matrix.php }} (${{ matrix.os == 'windows-latest' && 'Win' || 'Linux ARM' }})"

steps:
- name: Prepare git to leave line endings alone
Expand Down

0 comments on commit d63993a

Please sign in to comment.