Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Из этого краткого руководства вы узнаете, как создать рабочий процесс GitHub для публикации приложения .NET из исходного кода. Автоматическая публикация приложения .NET из GitHub в место назначения называется непрерывным развертыванием (CD). Существует множество возможных платформ для публикации приложения. В этом кратком руководстве вы опубликуете его в Azure.
Предпосылки
- Учетная запись GitHub.
- Репозиторий исходного кода .NET.
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Веб-приложение ASP.NET Core.
- Ресурс Службы приложений Azure.
Добавление профиля публикации
Чтобы опубликовать приложение в Azure, откройте портал Azure для экземпляра службы приложений приложения. В ресурсе Обзор выберите Получить профиль публикации и сохраните *.PublishSetting файл локально.
Предупреждение
Профиль публикации содержит конфиденциальную информацию, например учетные данные для доступа к ресурсу Службы приложений Azure. Эта информация всегда должна быть очень тщательно обработана.
В репозитории GitHub перейдите в раздел "Параметры " и выберите "Секреты " в меню навигации слева. Выберите новый секрет репозитория, чтобы добавить новый секрет.
Введите AZURE_PUBLISH_PROFILE как Имя, и вставьте XML-содержимое из профиля публикации в текстовое поле Значение. Выберите Добавить секрет. Дополнительные сведения см. в разделе "Зашифрованные секреты".
Создание файла рабочего процесса
В репозитории GitHub добавьте новый ФАЙЛ YAML в каталог github/workflows . Выберите понятное имя файла, которое четко указывает, что рабочий процесс предназначен для выполнения. Дополнительные сведения см. в файле рабочего процесса.
Это важно
GitHub требует, чтобы файлы композиции рабочих процессов размещались в каталоге github/workflows .
Файлы рабочих процессов обычно определяют композицию одного или нескольких GitHub Actions через jobs.<job_id>/steps[*]. Дополнительные сведения см. в синтаксисе рабочего процесса для GitHub Actions.
Создайте файл с именем publish-app.yml, скопируйте и вставьте в него следующее содержимое 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'
В приведенной выше композиции рабочего процесса:
name: publishопределяет название, "опубликовать" будет отображаться в значках статуса рабочего процесса.name: publishУзел
onобозначает события, которые активируют рабочий процесс:on: push: branches: [ production ]- Активируется при событии
push, происходящем на ветвиproduction.
- Активируется при событии
Узел
envопределяет именованные переменные среды (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- Переменная
AZURE_WEBAPP_NAMEсреды присваивается значениюDotNetWeb. - Переменная
AZURE_WEBAPP_PACKAGE_PATHсреды присваивается значению'.'. - Переменная
DOTNET_VERSIONсреды присваивается значению'6.0.401'. Переменная среды позже используется для указанияdotnet-versionвнутриactions/setup-dotnet@v3действия GitHub.
- Переменная
Узел
jobsсоздает шаги для выполнения рабочего процесса.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'- Существует одно задание с именем
publish, которое будет выполняться в последней версии Ubuntu. - Действие
actions/setup-dotnet@v3GitHub используется для настройки .NET SDK с указанной версией из переменной средыDOTNET_VERSION. - Команда
dotnet restoreвызывается. - Вызывается
dotnet buildкоманда. - Команда
dotnet publishвызывается. - Вызывается
dotnet testкоманда. - Действие GitHub
azure/webapps-deploy@v2развертывает приложение с заданнымиpublish-profileиpackage.- Он
publish-profileназначается из секретаAZURE_PUBLISH_PROFILEрепозитория.
- Он
- Существует одно задание с именем
Создание индикатора состояния рабочего процесса
В репозиториях GitHub обычно используется файл README.md в корне каталога репозитория. Аналогичным образом, приятно сообщить о последнем состоянии различных рабочих процессов. Все рабочие процессы могут генерировать значок состояния, который визуально привлекателен в файле README.md. Чтобы добавить значок состояния рабочего процесса, выполните следующие действия.
В репозитории GitHub выберите параметр навигации Actions .
Все рабочие процессы репозитория отображаются слева, выберите нужный рабочий процесс и кнопку с многоточием (...).
- Кнопка с многоточием (...) расширяет параметры меню для выбранного рабочего процесса.
Выберите пункт меню " Создать индикатор состояния ".
Нажмите кнопку "Копировать значок с состоянием в формате Markdown".
Вставьте Markdown в файл README.md , сохраните файл, зафиксируйте и отправьте изменения.
Дополнительные сведения см. в разделе "Добавление индикатора состояния рабочего процесса".
Пример индикатора состояния рабочего процесса публикации
| Процесс передачи | Неисправный | Нет состояния |
|---|---|---|
|
|
|
|
См. также
- dotnet restore
- dotnet build (выполнение сборки командой dotnet)
- dotnet test
- dotnet publish