Conversation
|
This is an automated comment for commit 972bacc with description of existing statuses. It's updated for the latest CI running ❌ Click here to open a full report in a separate page
Successful checks
|
docker/test/util/Dockerfile
Outdated
|
|
||
| # Install cmake 3.20+ for Rust support | ||
| # Used https://askubuntu.com/a/1157132 as reference | ||
| RUN curl -s https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor - > /etc/apt/trusted.gpg.d/kitware.gpg \ |
There was a problem hiding this comment.
We may merge this in one big RUN so that we don't have intermediate layers with unnecessary dependencies.
alesapin
left a comment
There was a problem hiding this comment.
I'm strongly against building such complex tools as clang or llvm at docker build stage. It's very unclear, implicit, and slow down these jobs. All other CI jobs depend on them.
docker build command shouldn't take hours if your laptop is not powerful enough.
Let's introduce a separate job for it which will publish artifacts to S3. We can even introduce fancy URLs for them and it will be available for every clickhouse developer.
|
I somewhat agree with @alesapin, this approach will work, but is very inefficient and will slow down CI significantly. Would be much nicer to make something like |
|
The |
|
It's a huge problem. What if I want to use locally exactly the same compiler/llvm which CI uses? I have to rebuild it (what if my PC is slow), or execute weird commands to extract it from docker image. Separate job with artifacts is much better than this solution. |
|
Ok, but this PR is still a step forward. Today you have a difficult way to get exactly the same compiler, either on your machine or in CI. After this pull request, it becomes easier. |
|
Reopen if needed. |
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Pin the compiler and tools version by building LLVM from sources. This eliminates a fragile supply-chain dependency. This closes #66493. See llvm/llvm-project#99453
CI Settings (Only check the boxes if you know what you are doing):