Необходимые компоненты
Перед созданием рабочего процесса GitHub Actions сначала нужно выполнить следующие действия по настройке:
-
Создайте статическое веб-приложение Azure с помощью опции 'Другое' для источника развертывания. Для получения дополнительной информации см. Быстрый старт: Создание вашего первого статического сайта в Azure портале в документации Azure.
-
Создайте секрет с именем
AZURE_STATIC_WEB_APPS_API_TOKENсо значением токена развертывания статического веб-приложения. Для получения дополнительной информации о том, как найти ваш токен развертывания, см. Reset deployment tokens в Azure Static Web Apps в документации Azure.
Создание рабочего процесса
Выполнив предварительные требования, можно приступить к созданию рабочего процесса.
Следующий пример рабочего процесса демонстрирует, как создать и развернуть Azure статическое веб-приложение при подаче в ветку main или при открытии, синхронизации или повторном открытии pull-запроса, нацеленный на main. Рабочий процесс также удаляет соответствующее предварительное развертывание при закрытии запроса на вытягивание, нацеленного на main.
Под ключом рабочего процесса env измените следующие значения:
*
APP_LOCATION в расположение кода клиента
*
API_LOCATION на расположение исходного кода API. Если API_LOCATION не имеет значения, можно удалить переменную и строки, в которых она используется.
*
OUTPUT_LOCATION на расположение вывода сборки кода клиента
Для получения дополнительной информации об этих значениях см. конфигурацию Build для Azure Static Web Apps в документации Azure.
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
# GitHub рекомендует закрепить действия в фиксации SHA.
# Чтобы получить более новую версию, потребуется обновить SHA.
# Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения.
name: Deploy web app to Azure Static Web Apps
env:
APP_LOCATION: "/" # location of your client code
API_LOCATION: "api" # location of your api source code - optional
OUTPUT_LOCATION: "build" # location of client code build output
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- main
permissions:
issues: write
contents: read
pull-requests: write
jobs:
build_and_deploy:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Build And Deploy
uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
action: "upload"
app_location: ${{ env.APP_LOCATION }}
api_location: ${{ env.API_LOCATION }}
output_location: ${{ env.OUTPUT_LOCATION }}
close_pull_request:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request
steps:
- name: Close Pull Request
uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
action: "close"
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
# GitHub рекомендует закрепить действия в фиксации SHA.
# Чтобы получить более новую версию, потребуется обновить SHA.
# Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения.
name: Deploy web app to Azure Static Web Apps
env:
APP_LOCATION: "/" # location of your client code
API_LOCATION: "api" # location of your api source code - optional
OUTPUT_LOCATION: "build" # location of client code build output
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- main
permissions:
issues: write
contents: read
pull-requests: write
jobs:
build_and_deploy:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Build And Deploy
uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
action: "upload"
app_location: ${{ env.APP_LOCATION }}
api_location: ${{ env.API_LOCATION }}
output_location: ${{ env.OUTPUT_LOCATION }}
close_pull_request:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request
steps:
- name: Close Pull Request
uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
action: "close"
Дополнительные материалы
- Исходный шаблон рабочего процесса см
azure-staticwebapp.yml. в репозитории GitHub Actions .starter-workflows - Действие, используемое для развертывания веб-приложения, — это официальное действие Azure
Azure/static-web-apps-deploy. - Больше примеров рабочих процессов GitHub Action, которые развертываются в Azure, смотрите репозиторий actions-workflow-samples.