Diese GitHub -Aktion automatisch Projekte basiert auf einer konfigurierbaren Menge von Metriken und enthält Feedback zu Pull -Anfragen (oder einzelnen Commits) in GitHub. Ich verwende diese Aktion, um Studentenprojekte in meinen Vorträgen an der Münchner Universität Applied Sciences automatisch zu bewerten.
Sie können die Ergebnisse dieser Aktion in einer Beispiel -Pull -Anforderung und den zugehörigen GitHub -Überprüfungsausgaben sehen. Ein weiteres echtes Beispiel ist in der Pull-Anfrage sichtbar und überprüft das Ergebnis eines gefälschten Studentenprojekts.
Die Ergebnisse der Aktion können verwendet werden, um verschiedene Abzeichen zu erstellen, die den aktuellen Status des Projekts zeigen. Die Aktion schreibt die Ergebnisse der Aktion in eine Datei namens metrics.env im Arbeitsbereich. Diese Datei kann verwendet werden, um Abzeichen mithilfe der GitHub -Abzeichenaktion zu erstellen. Das folgende Snippet zeigt, wie Sie mehrere Abzeichen für Ihr Projekt erstellen. Das vollständige Beispiel ist in meinem automatischen Workflow sichtbar.
[... 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