-
Notifications
You must be signed in to change notification settings - Fork 0
Optimize GH Actions #111
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
Optimize GH Actions #111
Conversation
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.
Pull request overview
This PR optimizes GitHub Actions by implementing Docker image caching to avoid redundant builds, and adds comprehensive support for Retroid Pocket devices (Pocket 5, Flip 2, Mini V1/V2) running LessOS.
Key Changes:
- Optimized CI/CD: Docker image caching using GHCR to skip redundant builds when Dockerfile hasn't changed
- Retroid platform support: Full platform implementation with SDL2 rendering, libudev input discovery, and device variant detection
- Dynamic input discovery: Introduced shared
udev_inputmodule for robust input device enumeration across LessOS platforms
Reviewed changes
Copilot reviewed 68 out of 73 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/qa.yml |
Implements Docker image caching strategy with GHCR registry |
Makefile.qa |
Adds docker-pull target to fetch prebuilt images from GHCR |
workspace/retroid/* |
Complete platform implementation for Retroid Pocket devices |
workspace/all/common/udev_input.* |
New shared module for libudev-based input device discovery |
workspace/rgb30/platform/* |
Migrated from hardcoded input paths to libudev |
workspace/*/show/show.c |
Unified SDL_Renderer-based boot splash implementation |
workspace/all/paks/Emus/cores.json |
Added SwanStation PS1 core for ARM64 devices |
| Various config files | Added Retroid-specific scaling configs and platform support |
Comments suppressed due to low confidence (9)
workspace/tg5040/show/show.c:1
- The destination rectangle in
SDL_RenderCopyExappears incorrect. When rotating 270° CCW, setting x=0, y=w, width=w, height=h would place the rotated content partially offscreen. For a 270° rotation, the destination should likely be {0, 0, h, w} (swapping width and height) to properly fit the rotated content within the display bounds.
workspace/rgb30/show/show.c:1 - The destination rectangle in
SDL_RenderCopyExappears incorrect. When rotating 270° CCW, setting x=0, y=w, width=w, height=h would place the rotated content partially offscreen. For a 270° rotation, the destination should likely be {0, 0, h, w} (swapping width and height) to properly fit the rotated content within the display bounds.
workspace/rg35xxplus/show/show.c:1 - The destination rectangle in
SDL_RenderCopyExappears incorrect. When rotating 270° CCW, setting x=0, y=w, width=w, height=h would place the rotated content partially offscreen. For a 270° rotation, the destination should likely be {0, 0, h, w} (swapping width and height) to properly fit the rotated content within the display bounds.
workspace/retroid/show/show.c:1 - The destination rectangle in
SDL_RenderCopyExappears incorrect. When rotating 270° CCW, setting x=0, y=w, width=w, height=h would place the rotated content partially offscreen. For a 270° rotation, the destination should likely be {0, 0, h, w} (swapping width and height) to properly fit the rotated content within the display bounds.
workspace/all/utils/keymon/keymon.c:1 - Unnecessary blank line after button state update. This blank line creates inconsistent spacing compared to the similar pattern for the L1 button handler immediately below, where no blank line appears after the state update.
workspace/all/utils/keymon/keymon.c:1 - Unnecessary blank line after button state update. This creates inconsistent spacing within the button handling logic.
workspace/all/utils/keymon/keymon.c:1 - Unnecessary blank line after button state update. This creates inconsistent spacing within the button handling logic.
workspace/all/utils/keymon/keymon.c:1 - Unnecessary blank line after button state update. This creates inconsistent spacing within the button handling logic.
workspace/all/utils/keymon/keymon.c:1 - Unnecessary blank line after button state update. This creates inconsistent spacing within the button handling logic.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Avoids rebuilding the dev container on every CI run by: - Adding docker-build job that hashes Dockerfile and checks GHCR - Only builds/pushes when the image doesn't exist for that hash - lint/analyze/test jobs pull the prebuilt image from GHCR Makefile.qa now pulls from GHCR by default. Use FORCE_DOCKER_BUILD=1 to build locally when iterating on the Dockerfile.
Use matrix strategy to build miyoomini and tg5040 concurrently. Changed from trimuismart to tg5040 for better code coverage.
c1ec8a0 to
78c9acc
Compare
Use project's sdl.h wrapper instead of <SDL.h> directly. The wrapper handles SDL1 vs SDL2 include paths correctly (<SDL2/SDL.h> vs <SDL/SDL.h>).
78c9acc to
9277838
Compare
This PR optimizes GitHub Actions by implementing Docker image caching to avoid redundant builds.