Skip to content

[libc][workflow] improve ci coverage with windows-2025 and arm ubuntu #123745

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

Merged

Conversation

SchrodingerZhu
Copy link
Contributor

@SchrodingerZhu SchrodingerZhu commented Jan 21, 2025

Add the following workflows:

  • fullbuild on aarch64 ubuntu
  • overlay on windows 2025
  • overlay on aarch64 ubuntu

ccache variant is used on aarch64 due to hendrikmuhs/ccache-action#279

@llvmbot
Copy link
Member

llvmbot commented Jan 21, 2025

@llvm/pr-subscribers-github-workflow

Author: Schrodinger ZHU Yifan (SchrodingerZhu)

Changes

Add the following workflows:

  • fullbuild on aarch64 ubuntu
  • overlay on windows 2025
  • overlay on aarch64 ubuntu

Full diff: https://github.com/llvm/llvm-project/pull/123745.diff

2 Files Affected:

  • (modified) .github/workflows/libc-fullbuild-tests.yml (+6-2)
  • (modified) .github/workflows/libc-overlay-tests.yml (+8)
diff --git a/.github/workflows/libc-fullbuild-tests.yml b/.github/workflows/libc-fullbuild-tests.yml
index 58e15ce29546ef..1db69665ae186d 100644
--- a/.github/workflows/libc-fullbuild-tests.yml
+++ b/.github/workflows/libc-fullbuild-tests.yml
@@ -11,12 +11,16 @@ on:
 
 jobs:
   build:
-    runs-on: ubuntu-24.04
+    runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
       matrix:
         include:
-          - c_compiler: clang
+          - os: ubuntu-24.04
+            c_compiler: clang
+            cpp_compiler: clang++
+          - os: ubuntu-24.04-arm
+            c_compiler: clang
             cpp_compiler: clang++
           # TODO: add back gcc build when it is fixed
           # - c_compiler: gcc
diff --git a/.github/workflows/libc-overlay-tests.yml b/.github/workflows/libc-overlay-tests.yml
index 8b59d76aed4a88..62c99742f7a6cc 100644
--- a/.github/workflows/libc-overlay-tests.yml
+++ b/.github/workflows/libc-overlay-tests.yml
@@ -22,10 +22,18 @@ jobs:
             compiler:
               c_compiler: clang
               cpp_compiler: clang++
+          - os: ubuntu-24.04-arm
+            compiler:
+              c_compiler: clang
+              cpp_compiler: clang++
           - os: windows-2022
             compiler:
               c_compiler: clang-cl
               cpp_compiler: clang-cl
+          - os: windows-2025
+            compiler:
+              c_compiler: clang-cl
+              cpp_compiler: clang-cl
           - os: macos-14
             compiler:
               c_compiler: clang

@lntue
Copy link
Contributor

lntue commented Jan 21, 2025

Can you take a look at (macos-14, clang, clang++) failures?

@boomanaiden154 boomanaiden154 self-requested a review January 21, 2025 18:32
@SchrodingerZhu SchrodingerZhu changed the title [libc][workflow] improve ci coverage with windows-2024 and arm ubuntu [libc][workflow] improve ci coverage with windows-2025 and arm ubuntu Jan 21, 2025
@SchrodingerZhu
Copy link
Contributor Author

SchrodingerZhu commented Jan 21, 2025

Switched to ccache on arm64 ubuntu.

@tstellar
Copy link
Collaborator

@SchrodingerZhu Looks good in general. I don't know much about libc, though.

@SchrodingerZhu
Copy link
Contributor Author

@tstellar thanks! I will also be waiting for @lntue, @boomanaiden154 and others' feedback then.

strategy:
fail-fast: false
matrix:
include:
- c_compiler: clang
- os: ubuntu-24.04
ccache-variant: sccache
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why use sccache for this, but ccache for the arm variant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sccache is a modern implementation from Mozilla, it supports more storage format and compiler (e.g. msvc/clang-cl). I prefer to default on sccache but due to hendrikmuhs/ccache-action#279, ccache is used on arm64 ubuntu.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a comment linking to that issue in the yml file. I assume it will be resolved some day, so if someone notices that in the future, it would be good to then resolve the arm specific differences.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed

Copy link
Contributor

@boomanaiden154 boomanaiden154 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable enough to me.

We need to be a bit careful with how many jobs run at once, but from what I've seen the libc jobs are reasonably fast, so shouldn't be a big issue. I'm not too sure how the new ARM runners counter against the limits though (their own lower limit? the general linux limit?).

Once the new premerge is spun up, I would like to reevaluate what configurations we're testing here too. We definitely can't test all the new configurations in the monorepo-wide premerge pipeline, but we do want to test a "standard" build on Linux (and windows if reasonable), and it would be good to not duplicate that with what's being done here.

@SchrodingerZhu
Copy link
Contributor Author

Merge this according to previous approval. New updates are trivial TODO lines.

@SchrodingerZhu SchrodingerZhu merged commit acc13db into llvm:main Jan 24, 2025
13 checks passed
@SchrodingerZhu SchrodingerZhu deleted the libc-workflow-win2025-linuxarm branch January 24, 2025 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants