Необходимые компоненты
Перед созданием рабочего процесса GitHub Actions сначала нужно выполнить следующие действия по настройке:
- 
Создать план Службы приложений Azure. Например, можно использовать Azure CLI для создания нового плана Службы приложений: Bash az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linux az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linuxВ приведенной выше команде замените MY_RESOURCE_GROUPна существующую группу ресурсов Azure, аMY_APP_SERVICE_PLAN— на новое имя плана Службы приложений.Дополнительные сведения об использовании Azure CLI см. в документации по Azure: - Сведения о проверке подлинности см. в статье "Вход с помощью Azure CLI".
- Если вам нужно создать новую группу ресурсов, ознакомьтесь с az group.
 
- 
Создайте веб-приложение. Например, можно использовать Azure CLI для создания веб-приложения Службы приложений Azure с помощью среды выполнения Node.js: Bash az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "NODE|14-lts"az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "NODE|14-lts"В приведенной выше команде замените параметры собственными значениями, где MY_WEBAPP_NAME— это новое имя для веб-приложения.
- 
Настройте профиль публикации Azure и создайте секрет AZURE_WEBAPP_PUBLISH_PROFILE.Создайте учетные данные развертывания Azure с помощью профиля публикации. Дополнительные сведения см. в статье "Создание учетных данных развертывания" в документации По Azure. В репозитории GitHub создайте секрет AZURE_WEBAPP_PUBLISH_PROFILE, содержащий сведения из профиля публикации. Дополнительные сведения о создании секретов см. в разделе Использование секретов в GitHub Actions.
- 
При необходимости настройте среду развертывания. Среды используются для описания общего целевого объекта развертывания, такого как production,stagingилиdevelopment. Когда рабочий процесс GitHub Actions выполняет развертывание в среде, эта среда отображается на главной странице репозитория. Вы можете использовать среды, чтобы требовать утверждения для продолжения задания, ограничить, какие ветви могут активировать рабочий процесс, воротные развертывания с помощью настраиваемых правил защиты развертывания или ограничить доступ к секретам. Дополнительные сведения о создании сред см. в разделе Управление средами для развертывания.
Создание рабочего процесса
Выполнив предварительные требования, можно приступить к созданию рабочего процесса.
В следующем примере рабочего процесса показано, как создать, протестировать и развернуть проект Node.js в Службе приложений Azure при отправке в ветвь main.
Убедитесь, что в ключе env рабочего процесса в качестве имени созданного веб-приложения задано значение AZURE_WEBAPP_NAME. Если путь к проекту не является корнем репозитория, измените AZURE_WEBAPP_PACKAGE_PATH путь к проекту. Если вы используете версию Node.js, отличную от версии 10.x, замените NODE_VERSION на используемую версию.
Если вы настроили среду развертывания, измените значение environment на имя среды. Если вы не настроили среду , или если рабочий процесс находится в частном репозитории, и вы не используете GitHub Enterprise Cloud, удалите ключ environment.
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
# GitHub рекомендует закрепить действия в фиксации SHA.
# Чтобы получить более новую версию, потребуется обновить SHA.
# Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения.
on:
  push:
    branches:
      - main
env:
  AZURE_WEBAPP_NAME: MY_WEBAPP_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
  NODE_VERSION: '14.x'                # set this to the node version to use
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version: ${{ env.NODE_VERSION }}
        cache: 'npm'
    - name: npm install, build, and test
      run: |
        npm install
        npm run build --if-present
        npm run test --if-present
    - name: Upload artifact for deployment job
      uses: actions/upload-artifact@v4
      with:
        name: node-app
        path: .
  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    steps:
    - name: Download artifact from build job
      uses: actions/download-artifact@v5
      with:
        name: node-app
    - name: 'Deploy to Azure WebApp'
      id: deploy-to-webapp
      uses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7c
      with:
        app-name: ${{ env.AZURE_WEBAPP_NAME }}
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
        package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
# GitHub рекомендует закрепить действия в фиксации SHA.
# Чтобы получить более новую версию, потребуется обновить SHA.
# Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения.
on:
  push:
    branches:
      - main
env:
  AZURE_WEBAPP_NAME: MY_WEBAPP_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
  NODE_VERSION: '14.x'                # set this to the node version to use
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version: ${{ env.NODE_VERSION }}
        cache: 'npm'
    - name: npm install, build, and test
      run: |
        npm install
        npm run build --if-present
        npm run test --if-present
    - name: Upload artifact for deployment job
      uses: actions/upload-artifact@v4
      with:
        name: node-app
        path: .
  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    steps:
    - name: Download artifact from build job
      uses: actions/download-artifact@v5
      with:
        name: node-app
    - name: 'Deploy to Azure WebApp'
      id: deploy-to-webapp
      uses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7c
      with:
        app-name: ${{ env.AZURE_WEBAPP_NAME }}
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
        package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
Дополнительные материалы
- Исходный шаблон рабочего процесса смazure-webapps-node.yml. в репозитории GitHub Actions .starter-workflows
- Действие, используемое для развертывания веб-приложения, является официальным действием Azure/webapps-deployAzure.
- Дополнительные примеры рабочих процессов GitHub Actions, которые развертываются в Azure, см. в репозитории actions-workflow-samples.
- Краткое руководство по созданию веб-приложения Node.js в Azure в документации по веб-приложению Azure демонстрирует использование Visual Studio Code с расширением службы приложение Azure.