Dette git repoet inneholder en liten C# .net core solution, med en Azure Function app, og et lite Test prosjekt.
I Github, kan du trykke "Fork", for å lage din egen kopi av repoet, til din egen brukerkonto.
Da kan du sette opp og kjøre Github Actions, ved å endre på .github/workflows/workflow.yaml filen.
Målet er å teste ut Github actions i praksis, og du skal dermed få løse noen oppgaver.
Du kan redigere og committe filer direkte på Github nettsiden,
eller trykke . for å åpne repoet i et VSCode interface i browseren (anbefales).
Eller laste ned koden lokalt, gjøre endringer og pushe tilbake.
Det kan være lurt å lage en ny commit, (og pushe til Github, om du jobber lokalt),
for hver oppgave, for å se om du har gjort det riktig.
Vi kan holde oss til å jobbe i main branchen.
Dette prosjektet er et lite "mandags-prosjekt", og det har en unit-test som kanskje ikke virker som den skal, en dependency med en kjent sårbarhet, samt en eller flere lint/formaterings feil.
Dette skal vi forsøke å finne ved hjelp Github actions steps, og fikse med nye commits.
Pga muligens lite tid, er oppgave 2 og 3 gjort ferdig for dere.
- "Fork" repoet, slik at du har det på din egen Github konto og kan committe og herje på med Github actions.
- I workflow.yaml filen, sett opp en
jobsom gjør følgende:- Kjører ved alle nye commits på
mainbranchen - Bruker ubuntu-latest til å kjøre jobben
- Og et
stepsom Sjekker ut koden i repoet (actions/checkout@v4)
- Kjører ved alle nye commits på
- Legg til en
actionsom setter opp .net miljøet vi skal bruke til å bygge koden (solutionen). Bruk .net versjon8.0.x. (Denne er gjort feridg for dere) - Legg til en action som bruker
dotnetverktøyet for å bygge solutionen, i Release mode, til mappen:./output. (Vi skal deploye fra den mappen i opg 8) (Se om du fårBuild succeededi job loggen) (dotnet build --configuration Release --output ./output) - Legg til en action som kjører unit testene i
Testsprosjektet. (dotnet test --verbosity minimal)- Dersom den klarte å kjøre testene, var det noe som feilet?
- Kan du lage en ny commit med kode-endringer som fikser feilen, og se om testene nå blir grønne (får "Passed") i Github actions?
- Legg til en action som utfører såbarhets sjekk av Nuget pakker i prosjektet. (
dotnet list package --vulnerable)- Sjekk loggen til jobben på Github, var det noen Nuget pakker sårbarheter?
- Legg til en action som installerer "dotnet format" verktøyet:
dotnet tool install -g dotnet-format- Legg til en ny action som bruker dotnet format til å Linte koden:
dotnet format --verify-no-changes - Sjekk loggen til jobben på Github, var det noen Lint feil?
- Kan du lage en ny commit som fikser Lint feilen i koden?
- Legg til en ny action som bruker dotnet format til å Linte koden:
- Siste oppgave (type: Stor oppgave): Å Deploye koden til en Azure Function app! Se egen readme fil: azure-oppsett.md
- For oppgave 4 til 7, trenger vi bare steps som kjører
dotnetkommandoer på kommandolinjen (ingen tredje parts actions). - Oppgave 5, 6 eller 7 kan skippes, dersom du har problemer med en av de (bare kommenter ut eller fjern de fra workflow filen), eller vil forsøke å deploye til Azure.
Mer informasjon om bygging og testing av .net prosjekter med Github actions: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-net
Eksempel på workflow fil for å deploye C# .net core til Azure function app (Men eldre .net versjon): https://github.com/Azure/actions-workflow-samples/blob/master/FunctionApp/windows-dotnet-functionapp-on-azure.yml