Esta acción de GitHub Autogrades se proyecta basados en un conjunto configurable de métricas y brinda comentarios sobre las solicitudes de extracción (o comodidades individuales) en GitHub. Utilizo esta acción para calificar automáticamente los proyectos estudiantiles en mis conferencias en la Universidad de Ciencias Aplicadas de Munich.
Puede ver los resultados de esta acción en una solicitud de extracción de ejemplo y la salida de comprobación de GitHub asociada. Otro ejemplo real es visible en la solicitud de extracción y el resultado de verificación de un proyecto de estudiante falso.
Los resultados de la acción se pueden utilizar para crear varias insignias que muestren el estado actual del proyecto. La acción escribe los resultados de la acción a un archivo llamado metrics.env en el espacio de trabajo. Este archivo se puede usar para crear insignias utilizando la acción de la insignia GitHub. El siguiente fragmento muestra cómo crear varias insignias para su proyecto, el ejemplo completo es visible en mi flujo de trabajo de autogradación.
[... Autograding, see above ... ]
- name : Write metrics to GitHub output
id : metrics
run : |
cat metrics.env >> "${GITHUB_OUTPUT}"
mkdir -p badges
- name : Generate the badge SVG image for the line coverage
uses : emibcn/[email protected]
with :
label : ' Line coverage '
status : ${{ steps.metrics.outputs.line }}%
color : ' green '
path : badges/line-coverage.svg
- name : Generate the badge SVG image for the branch coverage
uses : emibcn/[email protected]
with :
label : ' Branch coverage '
status : ${{ steps.metrics.outputs.branch }}%
color : ' green '
path : badges/branch-coverage.svg
- name : Generate the badge SVG image for the mutation coverage
uses : emibcn/[email protected]
with :
label : ' Mutation coverage '
status : ${{ steps.metrics.outputs.mutation }}%
color : ' green '
path : badges/mutation-coverage.svg
- name : Generate the badge SVG image for the style warnings
uses : emibcn/[email protected]
with :
label : ' Style warnings '
status : ${{ steps.metrics.outputs.style }}
color : ' orange '
path : badges/style-warnings.svg
- name : Generate the badge SVG image for the potential bugs
uses : emibcn/[email protected]
with :
label : ' Potential Bugs '
status : ${{ steps.metrics.outputs.bugs }}
color : ' red '
path : badges/bugs.svg
- name : Commit updated badges
continue-on-error : true
run : |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add badges/*.svg
git commit -m "Update badges with results from latest autograding" || true
- name : Push updated badges to GitHub repository
uses : ad-m/github-push-action@master
if : ${{ success() }}
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
branch : main