Развертывание в Службе приложений с помощью GitHub Actions

Начните работу с функцией GitHub Actions, которая позволит автоматизировать рабочий процесс и развертывать приложения в Службе приложений Azure из GitHub.

Необходимые компоненты

Настройка развертывания GitHub Actions при создании приложения

Развертывание GitHub Actions интегрировано в мастер создания приложений по умолчанию. Вам просто нужно настроить непрерывное развертывание, чтобы включить на вкладке "Развертывание" и настроить нужную организацию, репозиторий и ветвь.

A screenshot showing how to enable GitHub Actions deployment in the App Service create wizard.

При включении непрерывного развертывания мастер создания приложения автоматически выбирает метод проверки подлинности на основе базового выбора проверки подлинности и настраивает приложение и репозиторий GitHub соответствующим образом:

Выбор базовой проверки подлинности Authentication method
Disable Назначаемое пользователем удостоверение (OpenID Подключение)
Enable Обычная проверка подлинности

Примечание.

Если при создании приложения возникает ошибка, указывающая, что у вашей учетной записи Azure нет определенных разрешений, у нее могут быть не необходимые разрешения для создания и настройки удостоверения, назначаемого пользователем. Дополнительные сведения см. в статье "Настройка развертывания GitHub Actions" из Центра развертывания.

Настройка развертывания GitHub Actions из Центра развертывания

Для существующего приложения вы можете быстро приступить к работе с GitHub Actions с помощью центра развертывания Служба приложений. Этот метод поворачивающего ключа автоматически создает файл рабочего процесса GitHub Actions на основе стека приложения и фиксирует его в репозитории GitHub.

Центр развертывания также позволяет легко настроить более безопасную проверку подлинности OpenID Подключение с помощью параметра удостоверения, назначаемого пользователем.

Если у вашей учетной записи Azure есть необходимые разрешения, можно выбрать для создания удостоверения, назначаемого пользователем. В противном случае можно выбрать существующее управляемое удостоверение, назначаемое пользователем, в раскрывающемся списке "Удостоверение ". Вы можете работать с администратором Azure, чтобы создать управляемое удостоверение, назначаемое пользователем, с ролью участника веб-сайта.

Дополнительные сведения см. в статье "Непрерывное развертывание в службе приложение Azure".

Настройка рабочего процесса GitHub Actions вручную

Вы также можете развернуть рабочий процесс без использования центра развертывания.

  1. Создание учетных данных развертывания
  2. Настройка секрета GitHub
  3. Добавление файла рабочего процесса в репозиторий GitHub

1. Создание учетных данных развертывания

Рекомендуемый способ проверки подлинности с помощью служб приложение Azure для GitHub Actions — с определяемым пользователем управляемым удостоверением, а проще всего настроить развертывание GitHub Actions непосредственно на портале и выбрать управляемое удостоверение, назначаемое пользователем.

Примечание.

Проверка подлинности с помощью управляемого удостоверения, назначаемого пользователем, в настоящее время находится в предварительной версии.

Кроме того, можно пройти проверку подлинности с помощью субъекта-службы, OpenID Подключение или профиля публикации.

Примечание.

Для профиля публикации требуется включить базовую проверку подлинности .

Профиль публикации — это учетные данные уровня приложения. Настройте профиль публикации в качестве секрета GitHub.

  1. Перейдите к службе приложений на портале Azure.

  2. На странице Обзор выберите Получить профиль публикации.

  3. Сохраните скачанный файл. Содержимое этого файла будет использоваться для создания секрета GitHub.

Примечание.

По состоянию на октябрь 2020 г. веб-приложения Linux должны иметь параметр WEBSITE_WEBDEPLOY_USE_SCM приложения, заданный trueперед скачиванием профиля публикации. В дальнейшем это требование будет отменено.

2. Настройка секрета GitHub

В GitHub найдите нужный репозиторий. Выберите Параметры > Секреты безопасности > и переменные > Actions > New репозиторий secret.

Чтобы использовать учетные данные уровня приложения, вставьте содержимое скачанного файла профиля публикации в поле значения секрета. Присвойте этому секрету имя AZURE_WEBAPP_PUBLISH_PROFILE.

При настройке файла рабочего процесса GitHub позже используется AZURE_WEBAPP_PUBLISH_PROFILE действие развертывания веб-приложения Azure. Например:

- uses: azure/webapps-deploy@v2
  with:
    publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

3. Добавьте файл рабочего процесса в репозиторий GitHub

Рабочий процесс определяется файлом YAML (.yml) в /.github/workflows/ пути в репозитории GitHub. Это определение содержит разные шаги и параметры рабочего процесса.

Как минимум, файл рабочего процесса будет иметь следующие различные шаги:

  1. Проверка подлинности с помощью Служба приложений с помощью созданного секрета GitHub.
  2. Создайте веб-приложение.
  3. Разверните веб-приложение.

Чтобы развернуть код в приложении Служба приложений, используйте действие azure/webapps-deploy@v3. Для действия требуется имя веб-приложения и app-name в зависимости от стека языка путь *.zip, *.war, *.jar или папки для развертывания.package Полный список возможных входных данных для azure/webapps-deploy@v3 действия см . в определении action.yml .

В следующих примерах показана часть рабочего процесса, которая создает веб-приложение на разных поддерживаемых языках.

Входные publish-profile данные должны ссылаться на AZURE_WEBAPP_PUBLISH_PROFILE созданный ранее секрет GitHub.

name: .NET Core CI

on: [push]

env:
  AZURE_WEBAPP_NAME: my-app-name    # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0.x'           # set this to the dot net version to use

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Checkout the repo
      - uses: actions/checkout@main
      
      # Setup .NET Core SDK
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }} 
      
      # Run dotnet build and publish
      - name: dotnet build and publish
        run: |
          dotnet restore
          dotnet build --configuration Release
          dotnet publish -c Release --property:PublishDir='${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp' 
          
      # Deploy to Azure Web apps
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v3
        with: 
          app-name: ${{ env.AZURE_WEBAPP_NAME }} # Replace with your app name
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE  }} # Define secret variable in repository settings as per action documentation
          package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp'

Следующие шаги

Ознакомьтесь со ссылками на действия и рабочие процессы Azure GitHub: