Snabbstart: Skapa ett GitHub-arbetsflöde för byggverifiering
I den här snabbstarten får du lära dig hur du skapar ett GitHub-arbetsflöde för att verifiera kompilering av .NET-källkoden i GitHub. Kompilering av .NET-koden är ett av de mest grundläggande valideringsstegen som du kan vidta för att säkerställa kvaliteten på uppdateringar av koden. Om koden inte kompileras (eller skapas) är det enkelt att avskräcka och bör vara ett tydligt tecken på att koden måste åtgärdas.
Förutsättningar
- Ett GitHub-konto.
- En .NET-källkodslagringsplats.
Skapa en arbetsflödesfil
På GitHub-lagringsplatsen lägger du till en ny YAML-fil i katalogen .github/workflows . Välj ett meningsfullt filnamn, något som tydligt anger vad arbetsflödet är avsett att göra. Mer information finns i Arbetsflödesfil.
Viktigt!
GitHub kräver att arbetsflödets sammansättningsfiler placeras i katalogen .github/workflows .
Arbetsflödesfiler definierar vanligtvis en sammansättning av en eller flera GitHub-åtgärder via jobs.<job_id>/steps[*]
. Mer information finns i Arbetsflödessyntax för GitHub Actions.
Skapa en ny fil med namnet build-validation.yml, kopiera och klistra in följande YML-innehåll i den:
name: build
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build:
name: build-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
I föregående arbetsflödessammansättning:
Definierar
name: build
namnet, "build" visas i statusmärken för arbetsflödet.name: build
Noden
on
anger de händelser som utlöser arbetsflödet:on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
- Utlöses när en
push
ellerpull_request
inträffar på grenenmain
där alla filer som ändrats slutar med filnamnstilläggen .cs eller .csproj .
- Utlöses när en
Noden
env
definierar namngivna miljövariabler (env var).env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- Miljövariabeln
DOTNET_VERSION
tilldelas värdet'6.0.401'
. Miljövariabeln refereras senare till för att angedotnet-version
actions/setup-dotnet@v3
GitHub-åtgärden.
- Miljövariabeln
Noden
jobs
skapar de steg som arbetsflödet ska utföra.jobs: build: name: build-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: dotnet build --configuration Release --no-restore
Det finns ett enda jobb med namnet
build-<os>
där<os>
är operativsystemets namn frånstrategy/matrix
. Elementenname
ochruns-on
är dynamiska för varje värde imatrix/os
. Detta körs på de senaste versionerna av Ubuntu, Windows och macOS.GitHub-åtgärden
actions/setup-dotnet@v3
krävs för att konfigurera .NET SDK med den angivna versionen frånDOTNET_VERSION
miljövariabeln.(Valfritt) Ytterligare steg kan krävas, beroende på din .NET-arbetsbelastning. De utelämnas från det här exemplet, men du kan behöva ytterligare verktyg installerade för att skapa dina appar.
- När du till exempel skapar ett ASP.NET Core Blazor WebAssembly-program med AoT-kompilering (Ahead-of-Time) installerar du motsvarande arbetsbelastning innan du kör återställnings-/build-/publiceringsåtgärder.
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools
Mer information om .NET-arbetsbelastningar finns i
dotnet workload install
.Kommandot
dotnet restore
anropas.Kommandot
dotnet build
anropas.
I det här fallet ser du en arbetsflödesfil som en sammansättning som representerar de olika stegen för att skapa ett program. Många .NET CLI-kommandon är tillgängliga, varav de flesta kan användas i kontexten för en GitHub-åtgärd.
Skapa ett statusmärke för arbetsflödet
Det är vanligt att GitHub-lagringsplatser har en README.md fil i roten i lagringsplatsens katalog. På samma sätt är det bra att rapportera den senaste statusen för olika arbetsflöden. Alla arbetsflöden kan generera ett statusmärke som är visuellt tilltalande i README.md-filen . Så här lägger du till statusikonen för arbetsflödet:
Från GitHub-lagringsplatsen väljer du navigeringsalternativet Åtgärder .
Alla arbetsflöden för lagringsplatser visas till vänster, välj önskat arbetsflöde och ellipsknappen (...).
- Ellipsknappen (...) expanderar menyalternativen för det valda arbetsflödet.
Välj menyalternativet Skapa statusikon .
Välj knappen Kopiera statusikonen Markdown.
Klistra in Markdown i filen README.md , spara filen, checka in och push-överföra ändringarna.
Mer information finns i Lägga till ett statusmärke för arbetsflödet.
Exempel på statusmärke för byggarbetsflöde
Passerar | Misslyckas | Ingen status |
---|---|---|