Szybki start: tworzenie przepływu pracy usługi GitHub w celu opublikowania aplikacji
W tym przewodniku Szybki start dowiesz się, jak utworzyć przepływ pracy usługi GitHub w celu opublikowania aplikacji .NET na podstawie kodu źródłowego. Automatyczne publikowanie aplikacji .NET z usługi GitHub do miejsca docelowego jest określane jako ciągłe wdrażanie (CD). Istnieje wiele możliwych miejsc docelowych do opublikowania aplikacji. W tym przewodniku Szybki start opublikujesz na platformie Azure.
Wymagania wstępne
- Konto usługi GitHub.
- Repozytorium kodu źródłowego platformy .NET.
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aplikacja internetowa platformy ASP.NET Core.
- Zasób usługi aplikacja systemu Azure.
Dodawanie profilu publikowania
Aby opublikować aplikację na platformie Azure, otwórz witrynę Azure Portal dla wystąpienia usługi App Service aplikacji. W obszarze Przegląd zasobu wybierz pozycję Pobierz profil publikowania i zapisz *. Plik PublishSetting lokalnie.
Ostrzeżenie
Profil publikowania zawiera poufne informacje, takie jak poświadczenia na potrzeby uzyskiwania dostępu do zasobu usługi aplikacja systemu Azure. Te informacje powinny być zawsze traktowane bardzo ostrożnie.
W repozytorium GitHub przejdź do Ustawienia i wybierz pozycję Wpisy tajne z menu nawigacji po lewej stronie. Wybierz pozycję Nowy wpis tajny repozytorium, aby dodać nowy wpis tajny.
Wprowadź AZURE_PUBLISH_PROFILE
jako nazwę i wklej zawartość XML z profilu publikowania w obszarze tekstowym Wartość . Wybierz przycisk Add secret (Dodaj wpis tajny). Aby uzyskać więcej informacji, zobacz Zaszyfrowane wpisy tajne.
Tworzenie pliku przepływu pracy
W repozytorium GitHub dodaj nowy plik YAML do katalogu .github/workflows . Wybierz zrozumiałą nazwę pliku, co wyraźnie wskaże, co ma zrobić przepływ pracy. Aby uzyskać więcej informacji, zobacz Plik przepływu pracy.
Ważne
Usługa GitHub wymaga, aby pliki kompozycji przepływu pracy zostały umieszczone w katalogu .github/workflows .
Pliki przepływu pracy zwykle definiują kompozycję co najmniej jednej akcji usługi GitHub za pośrednictwem elementu jobs.<job_id>/steps[*]
. Aby uzyskać więcej informacji, zobacz Składnia przepływu pracy dla funkcji GitHub Actions.
Utwórz nowy plik o nazwie publish-app.yml, skopiuj i wklej do niego następującą zawartość 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'
W poprzedniej kompozycji przepływu pracy:
Definiuje
name: publish
nazwę "publikuj" będzie wyświetlana w wskaźnikach stanu przepływu pracy.name: publish
Węzeł
on
oznacza zdarzenia, które wyzwalają przepływ pracy:on: push: branches: [ production ]
- Wyzwalane, gdy element
push
występuje wproduction
gałęzi .
- Wyzwalane, gdy element
Węzeł
env
definiuje nazwane zmienne środowiskowe (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
- Zmienna środowiskowa
AZURE_WEBAPP_NAME
ma przypisaną wartośćDotNetWeb
. - Zmienna środowiskowa
AZURE_WEBAPP_PACKAGE_PATH
ma przypisaną wartość'.'
. - Zmienna środowiskowa
DOTNET_VERSION
ma przypisaną wartość'6.0.401'
. Później odwołuje się do zmiennej środowiskowejactions/setup-dotnet@v3
w celu określeniadotnet-version
akcji usługi GitHub.
- Zmienna środowiskowa
Węzeł
jobs
tworzy kroki, które należy wykonać przez przepływ pracy.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'
- Istnieje jedno zadanie o nazwie
publish
, które zostanie uruchomione w najnowszej wersji systemu Ubuntu. - Akcja
actions/setup-dotnet@v3
usługi GitHub służy do konfigurowania zestawu .NET SDK z określoną wersją ze zmiennej środowiskowejDOTNET_VERSION
. - Polecenie
dotnet restore
jest wywoływane. - Polecenie
dotnet build
jest wywoływane. - Polecenie
dotnet publish
jest wywoływane. - Polecenie
dotnet test
jest wywoływane. - Akcja
azure/webapps-deploy@v2
usługi GitHub wdraża aplikację przy użyciu danej metodypublish-profile
ipackage
.- Element
publish-profile
jest przypisywany z wpisu tajnegoAZURE_PUBLISH_PROFILE
repozytorium.
- Element
- Istnieje jedno zadanie o nazwie
Znaczek Tworzenie stanu przepływu pracy
Popularną nomenklaturą repozytoriów GitHub jest posiadanie pliku README.md w katalogu głównym katalogu repozytorium. Podobnie warto zgłosić najnowszy stan dla różnych przepływów pracy. Wszystkie przepływy pracy mogą wygenerować wskaźnik stanu, który jest wizualnie atrakcyjny w pliku README.md . Aby dodać wskaźnik stanu przepływu pracy:
W repozytorium GitHub wybierz opcję nawigacji Akcje .
Wszystkie przepływy pracy repozytorium są wyświetlane po lewej stronie, wybierz żądany przepływ pracy i przycisk wielokropka (...).
- Przycisk wielokropka (...) rozwija opcje menu dla wybranego przepływu pracy.
Wybierz opcję menu Znaczek Utwórz stan.
Wybierz przycisk Znaczek Stan kopiowania markdown .
Wklej znacznik Markdown do pliku README.md , zapisz plik, zatwierdź i wypchnij zmiany.
Aby uzyskać więcej informacji, zobacz Dodawanie wskaźnika stanu przepływu pracy.
Przykładowy wskaźnik stanu przepływu pracy publikowania
Zaliczone | Niepowodzenie | Brak stanu |
---|---|---|