Rychlý start: Vytvoření pracovního postupu GitHubu pro publikování aplikace
V tomto rychlém startu se dozvíte, jak vytvořit pracovní postup GitHubu pro publikování aplikace .NET ze zdrojového kódu. Automatické publikování aplikace .NET z GitHubu do cíle se označuje jako průběžné nasazování (CD). Aplikaci můžete publikovat mnoha možnými cíli. V tomto rychlém startu publikujete do Azure.
Požadavky
- Účet GitHub.
- Úložiště zdrojového kódu .NET.
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Webová aplikace ASP.NET Core.
- Prostředek služby Aplikace Azure.
Přidání profilu publikování
Pokud chcete aplikaci publikovat do Azure, otevřete web Azure Portal pro instanci služby App Service aplikace. V přehledu prostředků vyberte Získat profil publikování a uložte *. Soubor PublishSetting místně.
Upozorňující
Profil publikování obsahuje citlivé informace, jako jsou přihlašovací údaje pro přístup k prostředku služby Aplikace Azure Service. Tyto informace by měly být vždy považovány za velmi pečlivě.
V úložišti GitHub přejděte na Nastavení a v levé navigační nabídce vyberte Tajné kódy. Vyberte Nový tajný klíč úložiště a přidejte nový tajný kód.
Zadejte AZURE_PUBLISH_PROFILE
jako název a vložte obsah XML z profilu publikování do textové oblasti Hodnota . Vyberte Add secret (Přidat tajný kód). Další informace najdete v tématu Šifrované tajné kódy.
Vytvoření souboru pracovního postupu
V úložišti GitHub přidejte do adresáře .github/workflows nový soubor YAML. Zvolte smysluplný název souboru, který jasně indikuje, co má pracovní postup udělat. Další informace naleznete v souboru pracovního postupu.
Důležité
GitHub vyžaduje, aby se soubory složení pracovního postupu umístily do adresáře .github/workflows .
Soubory pracovního postupu obvykle definují složení jedné nebo více akcí GitHubu prostřednictvím .jobs.<job_id>/steps[*]
Další informace najdete v syntaxi pracovního postupu pro GitHub Actions.
Vytvořte nový soubor s názvem publish-app.yml, zkopírujte a vložte do něj následující obsah YML:
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'
V předchozím složení pracovního postupu:
Definuje
name: publish
název, "publish" se zobrazí v odznácích stavu pracovního postupu.name: publish
Uzel
on
označuje události, které aktivují pracovní postup:on: push: branches: [ production ]
- Aktivuje se při
push
výskytuproduction
ve větvi.
- Aktivuje se při
Uzel
env
definuje pojmenované proměnné prostředí (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
- Proměnná
AZURE_WEBAPP_NAME
prostředí má přiřazenou hodnotuDotNetWeb
. - Proměnná
AZURE_WEBAPP_PACKAGE_PATH
prostředí má přiřazenou hodnotu'.'
. - Proměnná
DOTNET_VERSION
prostředí má přiřazenou hodnotu'6.0.401'
. Na proměnnou prostředí se později odkazuje, aby se určiladotnet-version
actions/setup-dotnet@v3
akce GitHubu.
- Proměnná
Uzel
jobs
sestaví kroky, které má pracovní postup provést.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'
- Existuje jedna úloha s názvem
publish
, která se spustí na nejnovější verzi Ubuntu. - Akce GitHubu
actions/setup-dotnet@v3
slouží k nastavení sady .NET SDK se zadanou verzí zDOTNET_VERSION
proměnné prostředí. - Příkaz
dotnet restore
je volána. - Příkaz
dotnet build
je volána. - Příkaz
dotnet publish
je volána. - Příkaz
dotnet test
je volána. - Akce
azure/webapps-deploy@v2
GitHubu nasadí aplikaci s danoupublish-profile
package
a .- Je
publish-profile
přiřazený z tajnéhoAZURE_PUBLISH_PROFILE
kódu úložiště.
- Je
- Existuje jedna úloha s názvem
Odznak Vytvoření stavu pracovního postupu
Pro úložiště GitHubu se běžně používá README.md soubor v kořenovém adresáři úložiště. Stejně tak je dobré hlásit nejnovější stav pro různé pracovní postupy. Všechny pracovní postupy můžou generovat odznáček stavu, který je vizuálně atraktivní v souboru README.md . Přidání odznaku stavu pracovního postupu:
V úložišti GitHub vyberte možnost Navigace v akcích .
Všechny pracovní postupy úložiště se zobrazují na levé straně, vyberte požadovaný pracovní postup a tlačítko se třemi tečkami (...).
- Tlačítko se třemi tečkami (...) rozbalí možnosti nabídky pro vybraný pracovní postup.
Vyberte možnost nabídky Vytvořit stavový odznáček.
Vyberte tlačítko Kopírovat odznáček Markdown.
Vložte Markdown do souboru README.md , uložte soubor, potvrďte a nasdílejte změny.
Další informace najdete v tématu Přidání odznaku stavu pracovního postupu.
Ukázkový odznáček stavu publikování pracovního postupu
Předávání | Selhání | Žádný stav |
---|---|---|