Repository navigation
chore(ci): reconcile self-hosted runners while preserving develop pipelines - #157
efraespada wants to merge 33 commits into
Conversation
Merge release/1.4.0 into master
Merge release/1.4.2 into master
Merge release/1.4.3 into master
Merge release/1.4.4 into master
Merge release/1.5.0 into master
…95e1-8f51ea562e57 chore: configure Copilot
…b04f-d915667e6d8a chore: upgrade Copilot to 3.10.0
chore(ci): use shared self-hosted runners
Bugbot: 1 finding needs attention
Findings |
There was a problem hiding this comment.
Current status: All findings originating in this review are resolved.
Last reconciled on3a63324. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 1 potential problem when commit 5ae3e5b was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.
Findings
- medium: Synchronize events lack the push SHA fields —
.github/workflows/copilot_pull_request.yml:34
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #157 +/- ##
===========================================
- Coverage 54.10% 50.67% -3.43%
===========================================
Files 12 8 -4
Lines 573 519 -54
===========================================
- Hits 310 263 -47
+ Misses 263 256 -7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Current status: 1 finding originating in this review requires attention.
Last reconciled on3a63324. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 1 potential problem when commit 3a63324 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.
Findings
- medium: Browser dependencies exclude Ubuntu 22.04 package names —
.github/actions/setup-linux-dependencies/action.yml:46
| SUDO=(sudo) | ||
| else | ||
| echo "The self-hosted runner needs passwordless sudo to install CI dependencies." | ||
| exit 1 |
There was a problem hiding this comment.
Browser dependencies exclude Ubuntu 22.04 package names
Severity: medium
Category: reliability · Confidence: 83%
Location: .github/actions/setup-linux-dependencies/action.yml:46
When the browser input is true, this list requests only the t64 package names. Ubuntu 22.04 provides the corresponding libraries under their older names, so the private apt-get install fails to resolve them and Web jobs cannot prepare their Chrome runtime dependencies on that supported Debian/Ubuntu runner configuration.
Evidence:
The dependency action accepts Debian/Ubuntu runners, while this browser-only package list contains names such as libasound2t64 and libcups2t64. Those names are not available in Ubuntu 22.04; apt fails the install before the Web integration test can run. The contract fixture tests only ubuntu:24.04, so it does not catch this compatibility failure.
Suggested fix:
Select package names based on the runner distribution/release, or resolve the required libraries through packages available on both supported Ubuntu releases.
Reconcilia la alineación de runners de master (#156) con develop, conservando los 76 commits de aplicación pendientes y su pipeline completo de publicación de paquetes.
Los workflows usan el grupo
vypdevcon los mismos runners self-hosted de Copilot: Linux concodex, macOS ARM64 y Windows X64 según la plataforma. Se conserva la cobertura de SwiftPM/CocoaPods, workspace/pub-cache, ejemplos moderno/legacy de Android, herramientas nativas y publicación ordenada con tags inmutables. No se sustituye esa implementación por el placeholder de master.El SDK Flutter selecciona la arquitectura del runner y una caché versionada; Windows usa el helper ya validado con Git Bash. La selección de SwiftPM/CocoaPods usa un perfil privado por job y los tests iOS eliminan únicamente el simulador que han creado.
Validación local: actionlint, whitespace, preservación estructural de los 55 jobs de los diez workflows y de todas sus matrices; ninguna fuente de aplicación cambia frente a develop. Una prueba con Flutter 3.47.2 real verifica la configuración privada de SwiftPM sin cambiar la del operador. #156 se mergeó tras sus 38 checks correctos y review completo con cero findings. Esta reconciliación exige de nuevo todos sus checks y cero findings del head vigente antes de mergearse. No se ha despachado publicación ni deployment.
El setup Linux ya no requiere sudo: descarga/extracción privadas de los paquetes ausentes, metadatos de Perl/pkg-config y scripts GNU ld relocalizados, conservando los paquetes del sistema. Un test real en Ubuntu24.04amd64 bajoUID1000 valida clang/CMake,GTK,lcov50%,bc y cross-compilación ARM64, y comprueba que dpkg queda idéntico. El mismo contrato se ejecuta en CI con Docker en el Mac ARM64. Se incorpora también el hardening de credenciales de vypdev/copilot#682.
La CI de reconciliación detectó que setup-chrome solicitaba sudo y que CPATH introducía cabeceras Linux en el NDK. El setup ahora prepara las librerías de Chrome en su prefijo privado y descarga Chrome/ChromeDriver sin sudo; Android no recibe rutas de desarrollo del host y AArch64/Emscripten las limpian en su compilación cruzada. Se mantienen todas las matrices, casos, umbrales y el flujo completo de publicación de develop.
Regresión real OK: Ubuntu 24.04 linux/amd64 en Docker, UID1000, sin socket ni privilegios y con fuente de solo lectura: compilación GTK, compilación AArch64 con stdio, LCOV/bc y renderizado de una página con el Chrome estable real. El hash del estado dpkg del host no cambia. Lint de workflows y shell OK. Los checks de la PR se vuelven a exigir sobre el último commit.