Bump main Ubuntu version to 24.04 in GitHub Actions [circle skip]#588
Conversation
80ed97c to
529ca61
Compare
529ca61 to
7d81a31
Compare
WalkthroughCI workflow files updated to use Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Dev as Developer
participant GH as GitHub Actions
rect "#E8F5E9"
Dev->>GH: Push / PR triggers workflows
GH->>GH: Select runner -> ubuntu-latest
end
rect "#FFF3E0"
GH->>GH: Install packages via apt-get (includes valgrind)
GH->>GH: Configure LLVM repo -> apt.llvm.org/noble
GH->>GH: Run build, tests, coverage, static-analysis
end
GH->>Dev: Report status / artifacts
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (5)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (30)
🔇 Additional comments (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
7d81a31 to
b7345fe
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Outside diff range and nitpick comments (1)
.github/workflows/codeql-analysis.yml (1)
Line range hint
44-47: Consider updating GCC version to 13Ubuntu 24.04 ships with GCC 13 by default. Consider updating the symlinks to use gcc-13/g++-13 instead of version 11.
- sudo ln -sf /usr/bin/g++-11 /usr/bin/g++ - sudo ln -sf /usr/bin/gcc-11 /usr/bin/gcc + sudo ln -sf /usr/bin/g++-13 /usr/bin/g++ + sudo ln -sf /usr/bin/gcc-13 /usr/bin/gcc
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
.github/workflows/build.yml(3 hunks).github/workflows/codeql-analysis.yml(1 hunks)
🔇 Additional comments (3)
.github/workflows/codeql-analysis.yml (1)
29-29: Verify CodeQL compatibility with Ubuntu 24.04
While the upgrade to Ubuntu 24.04 aligns with the latest LTS release, we should verify the compatibility of the current toolchain with Noble Numbat.
✅ Verification successful
Ubuntu 24.04 upgrade is compatible with CodeQL workflow
The workflow uses GitHub's CodeQL action v3 which is compatible with Ubuntu 24.04. The analysis shows:
- The workflow uses official
github/codeql-actionat version 3 - Only C++ language analysis is configured
- Uses standard autobuild feature without custom build commands
- No specific toolchain dependencies are enforced in the workflow
Since GitHub officially supports Ubuntu 24.04 runners and CodeQL v3 is the latest major version, this upgrade is safe.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify if the current dependencies are available in Ubuntu 24.04 repositories
# Check if gcc-11 package is available in Ubuntu 24.04
curl -s "https://packages.ubuntu.com/noble/gcc-11" | grep -q "No such package"
GCC11_STATUS=$?
# Check if libboost-dev package is available
curl -s "https://packages.ubuntu.com/noble/libboost-dev" | grep -q "No such package"
BOOST_STATUS=$?
if [ $GCC11_STATUS -eq 0 ] || [ $BOOST_STATUS -eq 0 ]; then
echo "Warning: Some dependencies might not be available in Ubuntu 24.04"
[ $GCC11_STATUS -eq 0 ] && echo "- gcc-11 not found"
[ $BOOST_STATUS -eq 0 ] && echo "- libboost-dev not found"
fi
Length of output: 233
Script:
#!/bin/bash
# Let's verify the CodeQL action compatibility and configurations
# Check if there are any specific CodeQL configurations or language settings
rg -l "codeql" --type yaml
# Check the CodeQL configuration details
rg "language|runs-on|codeql" .github/workflows/codeql-analysis.yml -A 2 -B 2
# Check if there are any build or compile steps that might be affected
rg "build|compile|make|cmake" .github/workflows/codeql-analysis.yml
Length of output: 2302
.github/workflows/build.yml (2)
38-38: LGTM! Ubuntu version updates are consistent
The Ubuntu version has been consistently updated to 24.04 across all Linux build configurations.
Also applies to: 43-43, 49-49, 55-55, 61-61, 66-66, 72-72, 78-78, 84-84, 90-90, 97-97, 101-101, 106-106, 112-112, 118-118, 124-124, 129-129, 135-135, 141-141, 147-147, 153-153, 269-269, 276-276
Line range hint 1-500: Build matrix configuration looks good
The Ubuntu version updates have been applied consistently across all Linux builds while maintaining:
- All compiler configurations (GCC and Clang)
- All build types (Debug and Release)
- All sanitizer configurations (ASan, TSan, UBSan)
- Coverage builds
- Static analysis builds
MacOS configurations are correctly left unchanged.
| echo 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main' \ | ||
| | sudo tee -a /etc/apt/sources.list | ||
| sudo apt-get update | ||
| sudo apt-get install -y clang-19 iwyu |
There was a problem hiding this comment.
💡 Codebase verification
Switch to LLVM 18 as LLVM 19 packages are not yet available
LLVM 19 packages are currently not available in the noble repository. The workflow has multiple dependencies on LLVM 19 components (clang-19, libomp5-19, llvm-19, lld-19, clang-tools-19, clang-tidy-19) that need to be updated to use version 18 instead.
.github/workflows/build.yml: Update all occurrences of LLVM/Clang 19 to version 18- Repository URL: Change
llvm-toolchain-noble-19tollvm-toolchain-noble-18 - Package installations: Update all package names from
-19suffix to-18 - Job names: Update all references from "clang 19" to "clang 18"
- Repository URL: Change
🔗 Analysis chain
Verify LLVM 19 package availability in Ubuntu 24.04
The change to the noble repository is correct, but we should verify the availability and stability of LLVM 19 packages.
Let me verify the LLVM 18 availability as a fallback option before making the final recommendation.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify LLVM 19 package availability in Ubuntu 24.04 repository
# Check if LLVM 19 packages are available
curl -s "http://apt.llvm.org/noble/dists/llvm-toolchain-noble-19/main/binary-amd64/Packages" | \
grep -E "Package: (clang-19|llvm-19|lld-19|clang-tools-19|libomp5-19)"
if [ $? -ne 0 ]; then
echo "Warning: Some LLVM 19 packages might not be available yet"
fi
Length of output: 308
Script:
#!/bin/bash
# Check if LLVM 18 packages are available as a stable alternative
curl -s "http://apt.llvm.org/noble/dists/llvm-toolchain-noble-18/main/binary-amd64/Packages" | \
grep -E "Package: (clang-18|llvm-18)"
# Also verify if there's any mention of LLVM 19 in the workflow file that needs to be updated
rg "llvm.*19|clang.*19" .github/workflows/
Length of output: 1324
aa71fdf to
9058bea
Compare
9058bea to
6226836
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
.github/workflows/build.yml(3 hunks).github/workflows/codeql-analysis.yml(1 hunks).github/workflows/examples.yml(2 hunks).github/workflows/feature-matrix-build.yml(1 hunks).github/workflows/valgrind.yml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (60)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 13 Release, Release, clang, 13, EMPTY)
- GitHub Check: build (clang 12 Release with TSan, Release, ON, clang, 12)
- GitHub Check: build (clang 11 Release with UBSan, Release, ON, clang, 11)
- GitHub Check: build (clang 11 Debug with ASan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release with TSan, Release, ON, clang, 11)
🔇 Additional comments (6)
.github/workflows/feature-matrix-build.yml (1)
14-14: Straightforward upgrade to ubuntu-latest.This change is correct and aligns with the PR objective.
.github/workflows/codeql-analysis.yml (1)
14-14: Correct upgrade to ubuntu-latest.No concerns; standard dependency installation will work on ubuntu 24.04.
.github/workflows/valgrind.yml (1)
14-14: Good consolidation of package installation.Moving valgrind installation to apt-get and removing snap-based installation is cleaner and more efficient for ubuntu 24.04.
Also applies to: 35-35
.github/workflows/examples.yml (1)
14-14: Consistent package consolidation pattern.Aligns with valgrind.yml changes; apt-based valgrind installation is appropriate for ubuntu 24.04.
Also applies to: 37-38
.github/workflows/build.yml (2)
42-42: Comprehensive and consistent ubuntu-latest upgrades.All ubuntu-22.04 entries correctly updated; macOS entries appropriately left unchanged.
Also applies to: 47-47, 53-53, 59-59, 65-65, 70-70, 76-76, 82-82, 88-88, 94-94, 101-101, 105-105, 110-110, 116-116, 122-122, 128-128, 133-133, 139-139, 145-145, 151-151, 157-157, 273-273, 280-280
315-315: LLVM version consistency is correct.All LLVM packages correctly target version 20 (clang-20, libomp5-20, llvm-20, lld-20, clang-tools-20, clang-tidy-20), resolving the LLVM 19 availability issues flagged in prior review.
Also applies to: 319-319, 325-325, 331-331
6226836 to
9c3f1b0
Compare
9c3f1b0 to
b0978bb
Compare
|



Summary by CodeRabbit