Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Arm-hosted runners #581

Merged
merged 4 commits into from
Oct 4, 2024
Merged

Use Arm-hosted runners #581

merged 4 commits into from
Oct 4, 2024

Conversation

blapie
Copy link
Collaborator

@blapie blapie commented Oct 1, 2024

Documentation for these runners here https://gitlab.arm.com/tooling/gha-runner-docs

Only SLEEF upstream repo is allowed to use these runners.

Integrate runners via strategy.matrix.os, in order to facilitate customisation of step (e.g. config) based on runner label.

Checklist

  • I have read the contributing guidelines.
  • I have considered portability of my change across platforms and architectures.
  • I have self-reviewed my code.
  • I have commented my code where necessary.
  • I have updated the documentation accordingly.
  • I have added tests that prove my fix is effective or that my feature works.

What is the purpose of this pull request?

  • Add a workflow to GitHub Actions or add/modify a job in an existing workflow

What changes did you make?

This PR consists in adding self-hosted AArch64 runners.

Does this PR relate to any existing issue?

Relates to #481

Is there anything you would like reviewers to focus on?

Please on focus on workflow syntax.

Documentation for these runners here https://gitlab.arm.com/tooling/gha-runner-docs

Only SLEEF upstream repo is allowed to use these runners.

Integrate runners via strategy.matrix.os, in order to facilitate customisation
of step (e.g. config) based on runner label.
@blapie
Copy link
Collaborator Author

blapie commented Oct 1, 2024

Hello @shibatch,

With this PR we are looking to introduce new self/Arm-hosted AArch64 runners for CI tests. This has several benefits:

  • This will allow testing natively on AArch64, as today we only test natively on x86.
  • It will also give us a bit more freedom when it comes to choosing the environment, e.g. OS types and versions.
  • Since instances are made available through AWS, we could add x86 (amd64) runners too in the future and benefit from a broader range of OS-es.

However in order to fully activate this feature we need your action.
SLEEF has been approved by Arm as one of the projects that can access these resources, to finalise the process you would need to install a GitHub App and link it to SLEEF.
If you are ok with that, could you please follow the instructions copied below from https://gitlab.arm.com/tooling/gha-runner-docs?

Steps to Get Started

Install the GitHub App

Arm Hosted GHA Runners will be integrated to your GitHub repository using the GitHub App - Arm Host GitHub Action Runners. GitHub Apps are tools that extend GitHub's functionality. The underlying infrastructure sends and receives GitHub API requests through this GitHub App. There are certain permission requirement for the integration to work as given below.

Permission requirement for GitHub APP

Read access to actions, checks, codespaces metadata, and metadata - This is for listening to GitHub Action requests in your repository,

Read and write access to administration - This is for connecting GitHub Action Runner to your repository.

Steps to install the GitHub APP

Click on Arm Host GitHub Action Runners and select install.
You will be provided with a list of GitHub organisation and repositories that you manage. Select the repository that is approved by us and click install.

@shibatch
Copy link
Owner

shibatch commented Oct 3, 2024

I think it is now installed correctly.
Could you explain a little bit about which server configurations we can use?

@blapie blapie force-pushed the arm-runners branch 2 times, most recently from 871efa0 to 70c5bc1 Compare October 3, 2024 09:09
@blapie
Copy link
Collaborator Author

blapie commented Oct 3, 2024

@shibatch Thank you for installing the app, it is now able to connect to the Arm-hosted runners.
See for instance Actions ran on AArch64 runners passing for this PR

Could you explain a little bit about which server configurations we can use?

The documentation available here https://gitlab.arm.com/tooling/gha-runner-docs shows the different runners available.
If you are familiar with AWS terminology, you see that we have access to various sizes of c6g (Graviton 2, so AdvSIMD only) and c7g (Graviton 3, AdvSIMD and SVE). I recommend using the smallest instances, that is because we do not need large volumes of storage or many cores. I will assess if there is any gain (in time) using the 2xlarge instances over the xlarge.
But I want to make sure we have access to enough resources (or don't have to wait for resources).

New runners do not seem to come with openssl pre-installed.

Also fix artifacts name for build native, and fix dependencies.

Increase runner size and switch to SVE.
Install OpenSSL since tester3 is enforced.

New runners do not seem to come with openssl or cmake pre-installed.

Also,
- fix comparison for uarch specific configurations
- fix artifacts name for build native.
- use SVE enabled instances (c7g)
- use larger (x->2x) instances so tests run slightly faster without
  compromising on availability.
@blapie
Copy link
Collaborator Author

blapie commented Oct 4, 2024

Removed AArch64 from architecture that are cross-compiled, since we have native build on AArch64 now.
The downside is that we lose the ability to test cross-compilation (e.g. make sure the toolchain file is functional), but I believe this isn't as important (can easily be re-enabled), and there is greater benefit in simplifying the cross-compilation pipelines.

@blapie blapie merged commit 8373ab1 into shibatch:master Oct 4, 2024
32 checks passed
@blapie blapie mentioned this pull request Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants