PintOS Github Checker
Introducción
El proyecto PintOS consiste en 4 fases y al usar el mismo código fuente
para avanzar se obtiene una dependencia entre las fases, el detalle es que
fácilmente se puede perder el historial de dónde se a introducido un error,
por ejemplo, correr el make grade
para la fase 1 (threads) tiene un tiempo
de alrededor de 14 minutos para completarse, estar corriendo los tests para
esta fase es realmente tedioso, pero al utilizar Github actions para realizar
CI todo se vuelve más sencillo, ya que este trabajo es delegado a Github, por
lo tanto es una preocupación menos, además que el flujo de desarrollo será
de mejor calidad ya que puede saber que commit o pull request es la causante
del problema.
Pequeñas cosas a tomar en cuenta
Sabías que puedes solicitar una cuenta pro en Github al demostrar que eres un estudiante, si ya tienes eso es posible que te de igual la siguiente información:
Para los repositorios privados tienes un límite de 2000 minutos/mes (puede no estar actualizado el dato, pero sólo debes buscar por el límite y te contrarás al información)
- Es por esto que inicialmente está configurado sólo para funcionar cuándo se hacen push/pull request para las ramas develop, main o master
- Si tienes el permiso de dejar tu repositorio público esta límitación no se aplica o si tienes una cuenta pro el límite se incrementa
Dependiendo de tu tipo de cuenta los artifacts y logs tienen una duración de vida por ejemplo repos públicos con cuentas free, tiene una duración máxima de 3 meses, en el caso de este repo si intentas expandir "show results" verás que ya no está disponible la información y lo único que puedes saber es que el test pasó.
Es raro que tengas problemas con esto, porque de por sí no creo que dejes un bug sin cubrir por 3 meses.
Otra solución que tiene esta guía es poder configurar
asserts
sobre la nota, un ejemplo sería, si tu fase threads ya está completa tu assert debería sergrade === 100
o si se tiene una nota de 70 puntos se puede colocargrade >= 70
grade >= 70
es porque probablemente se mejore la solución con el paso del tiempo, si se coloca una igualdad, al tener una nota mayor fallará el testComo también se tiene acceso a
total
y hay puntos extras si los activas también se podría utilizargrade/total >= ...
después de todo esJavascript
lo que se utiliza para configurarlas.Al tener esto puedes estar seguro que tu código cumplía con los requerimientos impuestos y si está en verde significa que el resultado estaba dentro de lo esparado
Otra técnica que puedes usar para buscar bugs es
git bisect