ci: timeout-minutes en el job de CI - #43
Merged
Merged
Conversation
Un job sin timeout usa el default de Actions: 6 HORAS. Cinco jobs colgados asi agotaron los minutos de la org el 2026-08-19 (361 min cada uno, contra una mediana de 1,6). Este valor sale de lo medido, no de una intuicion. Part of sequre/ai_knowledge#1023
Un job sin timeout usa el default de Actions: 6 HORAS. Cinco jobs colgados asi agotaron los minutos de la org el 2026-08-19 (361 min cada uno, contra una mediana de 1,6). Este valor sale de lo medido, no de una intuicion. Part of sequre/ai_knowledge#1023
El job que corre tests es lo mas caro del CI y la org agoto los minutos de Actions (plan free, 2.000/mes, limite de gasto en $0: GitHub bloquea en vez de cobrar). Los tests pasan a ser un gate LOCAL antes de mergear, con la evidencia en el cuerpo del PR — la regla esta en el playbook, Fase 5. build, vet y lint NO se tocan: cuestan segundos y cazan cosas reales. El paso de tests queda disponible a mano con workflow_dispatch. Part of sequre/ai_knowledge#1023
El job que corre tests es lo mas caro del CI y la org agoto los minutos de Actions (plan free, 2.000/mes, limite de gasto en $0: bloquea en vez de cobrar). Los tests pasan a ser un gate LOCAL antes de mergear, con la evidencia en el PR — la regla esta en el playbook, Fase 5. build, vet y lint NO se tocan: cuestan segundos y cazan cosas reales. El paso de tests queda disponible a mano con workflow_dispatch. Part of sequre/ai_knowledge#1023
Se elimina, no se gatea: el paso seguia en git. Los tests se validan en local antes de mergear, con la evidencia en el PR (playbook, Fase 5). build, vet, lint y cross-compile NO se tocan. Part of sequre/ai_knowledge#1023
…son gratis Queda solo el timeout-minutes. Sacar los tests de Actions se hizo para no quemar los 2.000 min/mes del plan free, y eso aplica a repos PRIVADOS: en un repo publico GitHub da minutos ilimitados. Confirmado por observacion: el CI de este repo siguio corriendo y pasando mientras el de los 12 repos privados estaba bloqueado. Asi que sacarle rspec no ahorraba nada y le quitaba el unico gate automatico que tiene. El trade-off cambia de signo cuando el minuto es gratis. Part of sequre/ai_knowledge#1023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of sequre/ai_knowledge#1023
Agrega
timeout-minutes: 15al job de este workflow. Nada más — ver la corrección abajo.Por qué
Un job sin
timeout-minutesusa el default de GitHub Actions: 6 horas. El 2026-08-19 se agotaronlos minutos de Actions de la org y se cayó el CI de los repos privados, y la causa no fue el volumen
de corridas: fueron 5 jobs colgados de 361 min cada uno, contra una mediana de 1,6.
El diagnóstico completo está en
sequre/box_manager_service#336: se colgaba elapt-get updatecontra el mirror de Ubuntu, siempre en la misma línea, sin llegar nunca a correr un test.
15sale de lo medido: el p90 del job más caro del fleet es 7,6 min — margen de 2×.rspecLa primera versión de este PR también sacaba
bundle exec rspecdepush/pull_request, como sehizo en los repos de código privados. Estaba mal acá, y por una razón que no se había mirado: este
repo es PÚBLICO.
GitHub da minutos ilimitados de Actions en repos públicos. Confirmado por observación, no por la
documentación: mientras el CI de los 12 repos privados estaba bloqueado, el de este repo siguió
corriendo y pasando.
O sea que sacarle los tests no ahorraba un solo minuto y le quitaba el único gate automático que
tiene. El trade-off cambia de signo cuando el minuto es gratis.
Queda entonces:
rspecyrubocopcorriendo como siempre, más eltimeout-minutes.