Cette action GitHub autograde les projets basés sur un ensemble configurable de métriques et donne des commentaires sur les demandes de traction (ou les commits uniques) dans GitHub. J'utilise cette action pour noter automatiquement les projets étudiants dans mes conférences à l'Université des sciences appliquées de Munich.
Vous pouvez voir les résultats de cette action dans un exemple de demande de traction et la sortie GitHub associée vérifie la sortie. Un autre exemple réel est visible dans la demande de traction et vérifie le résultat d'un faux projet étudiant.
Les résultats de l'action peuvent être utilisés pour créer divers badges qui montrent l'état actuel du projet. L'action écrit les résultats de l'action à un fichier appelé metrics.env dans l'espace de travail. Ce fichier peut être utilisé pour créer des badges à l'aide de l'action de badge GitHub. L'extrait suivant montre comment créer plusieurs badges pour votre projet, l'exemple complet est visible dans mon flux de travail automatique.
[... 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