Skip to content

Bump GCC version in build.yml to 14#801

Merged
laurynas-biveinis merged 1 commit into
masterfrom
gcc-14-build.yml
Nov 14, 2025
Merged

Bump GCC version in build.yml to 14#801
laurynas-biveinis merged 1 commit into
masterfrom
gcc-14-build.yml

Conversation

@laurynas-biveinis
Copy link
Copy Markdown
Collaborator

@laurynas-biveinis laurynas-biveinis commented Nov 12, 2025

Enabled by build.yml now running on Ubuntu 24.04.

Add GCC 13 to old-compilers.yml.

Summary by CodeRabbit

  • Chores
    • CI pipeline now uses GCC 14 as the primary compiler for build and sanitizer jobs and defaults toolchain/configuration to GCC 14.
    • Added a separate workflow preserving GCC 13 compatibility with a comprehensive job matrix and installation steps for the older compiler.

@laurynas-biveinis laurynas-biveinis self-assigned this Nov 12, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 12, 2025

Walkthrough

Bumps default GCC from 13 to 14 in .github/workflows/build.yml and adds explicit GCC‑13 matrix entries plus guarded install steps in .github/workflows/old-compilers.yml. No public API changes.

Changes

Cohort / File(s) Summary
Main CI workflow update
.github/workflows/build.yml
Replaced GCC 13 → 14 across matrix job names, package installs (g++-13g++-14, multilib), CMake V variable (13 → 14), CC/CXX selection and GCC-specific conditionals.
Legacy GCC 13 matrix & setup
.github/workflows/old-compilers.yml
Added full GCC 13 matrix entries (Release/Debug ± ASan/TSan/UBSan) and conditional install steps that add PPA and install g++-13 when env.COMPILER == 'gcc' and env.VERSION == '13'. Duplicated matrix blocks and guarded setup steps present.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions
    participant BuildWF as build.yml
    participant OldWF as old-compilers.yml
    participant Runner as Ubuntu runner

    note right of BuildWF `#DDEBF7`: Default GCC toolchain = 14
    GH->>BuildWF: workflow triggered
    BuildWF->>Runner: install g++-14 + g++-14-multilib
    Runner-->>BuildWF: gcc-14/g++-14 available
    BuildWF->>Runner: configure CMake (V=14) & run jobs

    opt legacy GCC 13 support
      note right of OldWF `#F7F3DD`: Guarded install for VERSION==13
      GH->>OldWF: legacy workflow triggered
      OldWF->>Runner: if VERSION==13 add PPA & install g++-13
      Runner-->>OldWF: gcc-13 available
      OldWF->>Runner: run GCC-13 matrix jobs (Release/Debug + sanitizers)
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify every 13→14 substitution in .github/workflows/build.yml (matrix labels, package names, CC/CXX, CMake V).
  • Confirm old-compilers.yml matrix entries and guarded GCC‑13 install steps are intentional and not accidentally duplicated.

Possibly related PRs

Poem

Thirteen takes a bow, fourteen claims the stage,
Workflows updated, matrix entries page by page.
Legacy guards stand ready, installs in their place,
CI spins the wheels and keeps a steady pace. 🚀

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Bump GCC version in build.yml to 14' directly matches the primary change: updating GCC references from 13 to 14 in build.yml. It's specific, concise, and clearly summarizes the main modification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch gcc-14-build.yml

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@laurynas-biveinis laurynas-biveinis force-pushed the gcc-14-build.yml branch 2 times, most recently from 7b993cc to b5a5b87 Compare November 14, 2025 04:05
Enabled by build.yml now running on Ubuntu 24.04.

Add GCC 13 to old-compilers.yml.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b5a5b87 and 8160e7c.

📒 Files selected for processing (2)
  • .github/workflows/build.yml (3 hunks)
  • .github/workflows/old-compilers.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). (10)
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (5)
.github/workflows/old-compilers.yml (2)

630-687: GCC 13 matrix entries properly structured.

The 8 new GCC 13 matrix configurations follow the established pattern from GCC 12, with appropriate STATS and BOOST settings. Configuration looks sound.


630-735: The original review comment's premise is incorrect.

Verification shows there are no duplicate GCC 13 configurations. The script output confirms exactly 8 GCC 13 matrix entries (lines 630–681) and 1 setup step (line 730). The AI summary claiming "duplicates" is simply wrong. The code adds GCC 13 support once, not twice.

Likely an incorrect or invalid review comment.

.github/workflows/build.yml (3)

39-100: GCC 14 migration complete and consistent.

All matrix entry names correctly updated from GCC 13 to GCC 14, following established naming patterns. Configuration remains consistent with prior GCC 13 approach.


288-288: Dependency update properly matched to version bump.

Line 288 correctly updates to g++-14 g++-14-multilib, aligning with the GCC 14 matrix entries.


346-346: Version variable correctly updated.

Line 346 sets V=14 for GCC, which is then used in CC/CXX exports (lines 348-349). Propagation is correct.

Comment on lines +730 to +735
- name: Setup dependencies for GCC 13 (PPA)
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-13
if: env.COMPILER == 'gcc' && env.VERSION == '13'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Missing multilib package for GCC 13 installation.

The PPA setup installs only g++-13, but .github/workflows/build.yml line 288 installs g++-14 g++-14-multilib. For consistency and to ensure proper multilib support (needed for 32-bit compilation), install g++-13-multilib as well.

      - name: Setup dependencies for GCC 13 (PPA)
        run: |
          sudo add-apt-repository ppa:ubuntu-toolchain-r/test
          sudo apt-get update
-         sudo apt-get install -y g++-13
+         sudo apt-get install -y g++-13 g++-13-multilib
        if: env.COMPILER == 'gcc' && env.VERSION == '13'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Setup dependencies for GCC 13 (PPA)
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-13
if: env.COMPILER == 'gcc' && env.VERSION == '13'
- name: Setup dependencies for GCC 13 (PPA)
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-13 g++-13-multilib
if: env.COMPILER == 'gcc' && env.VERSION == '13'
🤖 Prompt for AI Agents
In .github/workflows/old-compilers.yml around lines 730 to 735, the GCC 13 PPA
step installs only g++-13 but omits the multilib package; update the apt-get
install command to include g++-13-multilib so the step installs both g++-13 and
g++-13-multilib (matching the pattern used for GCC 14) to enable 32-bit/multilib
builds.

@sonarqubecloud
Copy link
Copy Markdown

@laurynas-biveinis laurynas-biveinis merged commit 351bbbc into master Nov 14, 2025
236 of 239 checks passed
@laurynas-biveinis laurynas-biveinis deleted the gcc-14-build.yml branch November 14, 2025 14:13
@coderabbitai coderabbitai Bot mentioned this pull request Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant