Quickstart: Een GitHub-werkstroom maken om een app te publiceren
In deze quickstart leert u hoe u een GitHub-werkstroom maakt om uw .NET-app te publiceren op basis van broncode. Het automatisch publiceren van uw .NET-app van GitHub naar een bestemming wordt een continue implementatie (CD) genoemd. Er zijn veel mogelijke bestemmingen om een toepassing te publiceren. In deze quickstart publiceert u naar Azure.
Vereisten
- Een GitHub-account.
- Een .NET-broncodeopslagplaats.
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een ASP.NET Core-web-app.
- Een Azure-app Service-resource.
Publicatieprofiel toevoegen
Als u de app naar Azure wilt publiceren, opent u Azure Portal voor het App Service-exemplaar van de toepassing. Selecteer In het resourceoverzicht het publicatieprofiel ophalen en sla het *op. PublishSetting-bestand lokaal.
Waarschuwing
Het publicatieprofiel bevat gevoelige informatie, zoals referenties voor toegang tot uw Azure-app Service-resource. Deze informatie moet altijd zorgvuldig worden behandeld.
Navigeer in de GitHub-opslagplaats naar Instellingen en selecteer Geheimen in het linkernavigatiemenu. Selecteer Nieuw opslagplaatsgeheim om een nieuw geheim toe te voegen.
Voer AZURE_PUBLISH_PROFILE
de naam in en plak de XML-inhoud van het publicatieprofiel in het tekstgebied Waarde . Selecteer Geheim toevoegen. Zie Versleutelde geheimen voor meer informatie.
Een werkstroombestand maken
Voeg in de GitHub-opslagplaats een nieuw YAML-bestand toe aan de map .github/workflows . Kies een betekenisvolle bestandsnaam, iets dat duidelijk aangeeft wat de werkstroom moet doen. Zie Werkstroombestand voor meer informatie.
Belangrijk
GitHub vereist dat werkstroomsamenstellingsbestanden in de map .github/workflows worden geplaatst.
Werkstroombestanden definiëren doorgaans een samenstelling van een of meer GitHub Action via de jobs.<job_id>/steps[*]
. Zie de werkstroomsyntaxis voor GitHub Actions voor meer informatie.
Maak een nieuw bestand met de naam publish-app.yml, kopieer en plak de volgende YML-inhoud erin:
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-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: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
In de voorgaande werkstroomsamenstelling:
De
name: publish
naam wordt gedefinieerd, 'publiceren' wordt weergegeven in werkstroomstatusbadges.name: publish
Het
on
knooppunt geeft de gebeurtenissen aan die de werkstroom activeren:on: push: branches: [ production ]
- Geactiveerd wanneer er een
push
optreedt op deproduction
vertakking.
- Geactiveerd wanneer er een
Het
env
knooppunt definieert benoemde omgevingsvariabelen (env var).env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- De omgevingsvariabele
AZURE_WEBAPP_NAME
wordt de waardeDotNetWeb
toegewezen. - De omgevingsvariabele
AZURE_WEBAPP_PACKAGE_PATH
wordt de waarde'.'
toegewezen. - De omgevingsvariabele
DOTNET_VERSION
wordt de waarde'6.0.401'
toegewezen. Er wordt later naar de omgevingsvariabele verwezen om dedotnet-version
actions/setup-dotnet@v3
GitHub Action op te geven.
- De omgevingsvariabele
Het
jobs
knooppunt bouwt de stappen uit die de werkstroom moet uitvoeren.jobs: publish: runs-on: ubuntu-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: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
- Er is één taak, die
publish
wordt uitgevoerd op de nieuwste versie van Ubuntu. - De
actions/setup-dotnet@v3
GitHub Action wordt gebruikt om de .NET SDK in te stellen met de opgegeven versie van deDOTNET_VERSION
omgevingsvariabele. - De
dotnet restore
opdracht wordt aangeroepen. - De
dotnet build
opdracht wordt aangeroepen. - De
dotnet publish
opdracht wordt aangeroepen. - De
dotnet test
opdracht wordt aangeroepen. - De
azure/webapps-deploy@v2
GitHub Action implementeert de app met de opgegevenpublish-profile
enpackage
.- Het
publish-profile
is toegewezen vanuit hetAZURE_PUBLISH_PROFILE
opslagplaatsgeheim.
- Het
- Er is één taak, die
Badge Een werkstroomstatus maken
Het is gebruikelijk dat GitHub-opslagplaatsen een README.md bestand hebben in de hoofdmap van de opslagplaatsmap. Op dezelfde manier is het handig om de meest recente status voor verschillende werkstromen te rapporteren. Alle werkstromen kunnen een statusbadge genereren, die visueel aantrekkelijk zijn in het README.md-bestand . De badge Werkstroomstatus toevoegen:
Selecteer in de GitHub-opslagplaats de optie Actiesnavigatie .
Alle werkstromen van de opslagplaats worden aan de linkerkant weergegeven, selecteer de gewenste werkstroom en de knop met het beletselteken (...).
- Met de knop met het beletselteken (...) worden de menuopties voor de geselecteerde werkstroom uitgevouwen.
Selecteer de menuoptie Statusbadge maken.
Selecteer de markdown-knop Status kopiëren.
Plak de Markdown in het README.md bestand, sla het bestand op, voer de wijzigingen door en push deze.
Zie De badge Een werkstroomstatus toevoegen voor meer informatie.
Voorbeeld badge werkstroomstatus publiceren
Geslaagd | Mislukt | Geen status |
---|---|---|