Esta ação do GitHub autogrotiza os projetos com base em um conjunto configurável de métricas e fornece feedback sobre solicitações de tração (ou commits) no GitHub. Eu uso esta ação para classificar automaticamente os projetos de estudantes em minhas palestras na Universidade de Ciências Aplicadas de Munique.
Você pode ver os resultados dessa ação em um exemplo de solicitação de tração e a saída do GitHub associado. Outro exemplo real é visível na solicitação de tração e verifica o resultado de um projeto falso do aluno.
Os resultados da ação podem ser usados para criar vários crachás que mostram o status atual do projeto. A ação grava os resultados da ação em um arquivo chamado metrics.env na área de trabalho. Este arquivo pode ser usado para criar crachás usando a ação do crachá do Github. O snippet a seguir mostra como criar vários crachás para o seu projeto, o exemplo completo é visível no meu fluxo de trabalho autogrogado.
[... 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