ci(github): split backend builds into separate CI jobs#11
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe CI workflow is restructured to build separate binaries for Qt WebEngine and WebKitGTK with distinct dependencies, uploading each as uniquely named artifacts. A new runtime-smoke job verifies runtime linkage of both binaries. Simultaneously, conditional compilation guards around Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Pull request overview
Splits CI backend builds into separate GitHub Actions jobs and adds a runtime smoke verification step intended to validate both Qt WebEngine and WebKitGTK builds.
Changes:
- Split the single
buildjob intobuild-qtwebengineandbuild-webkitgtk-fallback. - Add a
runtime-smokejob that runssafe-exam-browser --versionfor both intended backends. - Add an ignore rule for
docs/next-update-plan.md.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Splits CI into separate backend build jobs and adds a runtime smoke job. |
.gitignore |
Ignores docs/next-update-plan.md. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)
70-80: Consider using runtime packages instead of-devpackages.The
runtime-smokejob installs development packages (e.g.,libqt6svg6-dev,qt6-base-dev) when only the runtime shared libraries are needed for executing the binaries. While-devpackages pull in runtime dependencies and this will work, it installs unnecessary headers and development files.For a leaner runtime verification, consider installing just the runtime packages (e.g.,
libqt6svg6,libqt6core6,libqt6webenginecore6, etc.).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/ci.yml around lines 70 - 80, The workflow's runtime-smoke job installs development packages (libqt6svg6-dev, qt6-base-dev, qt6-tools-dev-tools, qt6-webengine-dev, libwebkit2gtk-4.1-dev, libgtk-3-dev, zlib1g-dev) but only needs runtime shared libraries; replace the -dev packages with their runtime counterparts (e.g., libqt6svg6, libqt6core6, libqt6webenginecore6, libwebkit2gtk-4.1-0 or equivalent, libgtk-3-0, zlib1g) in the "Install runtime dependencies" step so the CI installs lean runtime packages for the runtime-smoke job instead of development headers/tools.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 70-80: The workflow's runtime-smoke job installs development
packages (libqt6svg6-dev, qt6-base-dev, qt6-tools-dev-tools, qt6-webengine-dev,
libwebkit2gtk-4.1-dev, libgtk-3-dev, zlib1g-dev) but only needs runtime shared
libraries; replace the -dev packages with their runtime counterparts (e.g.,
libqt6svg6, libqt6core6, libqt6webenginecore6, libwebkit2gtk-4.1-0 or
equivalent, libgtk-3-0, zlib1g) in the "Install runtime dependencies" step so
the CI installs lean runtime packages for the runtime-smoke job instead of
development headers/tools.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 1400b522-3842-41b1-a3c6-fc28d05bb98f
📒 Files selected for processing (2)
.github/workflows/ci.yml.gitignore
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Build Qt WebEngine backend | ||
| run: ./scripts/build.sh |
There was a problem hiding this comment.
Both backend jobs call ./scripts/build.sh without explicitly forcing the intended engine. Since scripts/build.sh forwards args to qmake6 and seb-linux-qt.pro supports CONFIG+=force_qtwebengine / CONFIG+=force_webkitgtk, it would be more robust to pass the corresponding CONFIG flag here to guarantee the produced artifact is the Qt WebEngine build even if dependency detection changes or the runner image includes additional packages.
| - name: Build WebKitGTK fallback backend | ||
| run: ./scripts/build.sh |
There was a problem hiding this comment.
This WebKitGTK job also runs ./scripts/build.sh without explicitly selecting the fallback engine. To ensure this artifact is truly the WebKitGTK build (and not Qt WebEngine due to auto-detection), consider passing CONFIG+=force_webkitgtk (supported by seb-linux-qt.pro) to the build script.
| - name: Verify Qt WebEngine runtime | ||
| env: | ||
| QT_QPA_PLATFORM: offscreen | ||
| run: ./build/bin/safe-exam-browser --version | ||
| run: | | ||
| chmod +x artifacts/qtwebengine/safe-exam-browser | ||
| artifacts/qtwebengine/safe-exam-browser --version | ||
|
|
||
| - name: Verify WebKitGTK runtime | ||
| env: | ||
| QT_QPA_PLATFORM: offscreen | ||
| run: | | ||
| chmod +x artifacts/webkitgtk/safe-exam-browser | ||
| artifacts/webkitgtk/safe-exam-browser --version |
There was a problem hiding this comment.
The runtime verification currently runs --version for both artifacts, which doesn’t validate that the downloaded binary matches the intended backend (Qt WebEngine vs WebKitGTK). Consider adding a lightweight assertion here (e.g., ldd/readelf check for linking against Qt6WebEngine* vs libwebkit2gtk*, or emitting backend info in --version) so the job fails if the wrong artifact is produced/uploaded.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
What Changed
Verification
Summary by CodeRabbit
Tests
Chores