llvm / llvm/llvm-project

[libc++] Decouple building libc++ from testing libc++ in the CI

Open
#193,525 1 comment 0 reactions 0 assignees View on GitHub
infrastructure libc++
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

Originally from https://github.com/llvm/llvm-project/pull/193045#pullrequestreview-4155899291.

I think it would be generally beneficial to split up our CI to represent the two axis that actually exist in reality:
- The configuration used to build libc++.dylib (exceptions? RTTI? hardening mode?)
- The configuration when using libc++ (aka how the developer builds their own code)

This would allow properly testing the real configuration matrix that we support. We could have a set of CI jobs that build libc++ in various configurations and store it in the Github Actions temp storage, and then a set of jobs that download that and test it in various other configurations. Doing that properly will require a generalization of our existing Lit features though (e.g. `no-exceptions` becomes meaningless, since we need to specify whether the dylib is no-exceptions or the user code is no-exceptions).

Contributor guide

Open the contributing guide

Research direction

Start by examining the existing libc++ GitHub Actions CI jobs and Lit features mentioned in the issue. Map the current build and test configurations, then determine how jobs can share built libc++.dylib artifacts while distinguishing library and user-code settings; done means both configuration axes are independently exercised.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, github-actions
Domain
build-system, ci-cd, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.