-
Notifications
You must be signed in to change notification settings - Fork 251
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
CI run-tests
script now attempts to detect Apple Clang 15 and other unsupported regression-tests compiler versions
#972
CI run-tests
script now attempts to detect Apple Clang 15 and other unsupported regression-tests compiler versions
#972
Conversation
…rt it The `macos-13` runner has both Apple Clang 14 and 15 installed, and some CI workflow runs appear to use 15, causing spurious failures.
Is there a reason to not add support for Clang 15? |
Is there an issue with Apple Clang 15, or just that there's no subdirectory for Apple Clang 15 in the test results? |
@hsutter In fact I wanted to propose adding support for Clang 15. I think the |
compiler_version=$("$cxx_compiler" --version) | ||
|
||
# We don't currently support Apple Clang 15 so try and switch to 14 | ||
if [[ "$compiler_version" == *"Apple clang version 15.0"* ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[Question] Are you sure Apple Clang 15 was selected? The GitHub runner states that Clang 15 s installed from Homebrew. I checked and the output of $(brew --prefix llvm@15)/bin/clang --version
is:
Homebrew clang version 15.0.7
Target: x86_64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm@15/bin
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I'm not 100% sure, this is very much some investigative work!
All I can say for certain right now is that on some macOS job runs (e.g. the one linked above, and I've seen it other times too), clang++
does not resolve to Apple Clang 14. That's why the script produces the not found for compiler: 'clang++'
error message.
One of the updates in this PR is to provide more info about why the job fails. If this PR is merged then in the future we'll get more info due to this:
printf "Unhandled compiler version:\n$compiler_version\n\n"
That may show Apple clang 15.0 etc
or something else.
Yeah, the macos-13
runner confusingly has both LLVM Clang installed as well as multiple versions of Xcode (with Apple Clang).
Xcode 14.3 is meant to be the default so clang++
would resolve to Apple Clang 14, but I suspect there's a problem which is causing Xcode 15 to be active. But, it could also somehow be invoking LLVM Clang 15. To me that seemed less likely because, like you noted, it's installed via Homebrew and needs the brew --prefix llvm@15
to get the correct path.
Nope, that's definitely an option. (Note there's Clang 15 as well as Apple Clang 15.) |
Yeah, the latter, because there are no expected test-results yet for Apple Clang 15. Even if we add test-results for Clang 15 and Apple Clang 15, I think it's still worth adding this part of the PR:
That way in the future we'll get more details when the job fails due to a new compiler on the GitHub runner that we don't yet have test-results for. |
@jarzec I see an "approved these changes" from you midway up above, just checking: Does this look ready to merge to you? |
Yes, please do merge. I've started to look into including Clang 15 on top of the updates here. |
Thanks! |
After investigating some spurious macOS regression-test job failures, I found that the
macos-13
GitHub runner has both Apple Clang 14 and 15 installed.It appears that on some runs, running
clang++
incorrectly selects Apple Clang 15, which is currently unsupported as a compiler version for the regression-tests. For example, see this log file for this failed job.This PR makes 2 changes:
CC @jarzec