Сведения о пользовательских рабочих процессах
Пользовательские рабочие процессы позволяют GitHub Pages создавать сайты с помощью использования GitHub Actions. Вы по-прежнему можете выбрать ветвь, используемую с помощью файла рабочего процесса, но вы можете сделать гораздо больше с использованием пользовательских рабочих процессов. Чтобы начать использование пользовательских рабочих процессов, необходимо сначала включить их для текущего репозитория. Дополнительные сведения см. в разделе Настройка источника публикации для вашего сайта GitHub Pages.
configure-pages Настройка действия
GitHub Actions позволяет использовать GitHub Pagesconfigure-pages действие, которое также позволяет собирать различные метаданные о веб-сайте. Дополнительные сведения см. в описании действия configure-pages.
Чтобы использовать действие, поместите этот фрагмент в jobs нужный рабочий процесс.
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
Это действие помогает поддерживать развертывание из любого генератора GitHub Pagesстатических сайтов в . Чтобы сделать этот процесс менее повторяющимся, можно использовать шаблоны рабочих процессов для некоторых наиболее широко используемых статических генераторов сайтов. Дополнительные сведения см. в разделе Использование шаблонов рабочих процессов.
upload-pages-artifact Настройка действия
Действия upload-pages-artifact позволяют упаковывать и отправлять артефакты.
GitHub Pages Артефакт должен быть сжатым gzip архивом, содержащим один tar файл. Файл tar должен быть размером до 10 ГБ и не должен содержать символьные или жесткие ссылки. Дополнительные сведения см. в описании действия upload-pages-artifact.
Чтобы использовать действие в текущем рабочем процессе, введите этот фрагмент кода в раздел jobs.
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v4
GitHub Pages Развертывание артефактов
Действие deploy-pages обрабатывает необходимую настройку для развертывания артефактов. Чтобы обеспечить правильную функциональность, необходимо выполнить следующие требования:
- Задание должно иметь минимальное количество
pages: writeразрешений иid-token: writeразрешений. - Параметр
needsдолжен быть задан наidшаге сборки. Если этот параметр не задан, это может привести к независимому развертыванию, которое постоянно выполняет поиск артефакта, который не был создан. - Необходимо
environmentустановить для применения правил защиты филиалов и развертываний. Среда по умолчаниюgithub-pages. - Чтобы указать URL-адрес страницы в качестве выходных данных, используйте
url:поле.
Дополнительные сведения см. в описании действия deploy-pages.
# ...
jobs:
deploy:
permissions:
contents: read
pages: write
id-token: write
runs-on: ubuntu-latest
needs: jekyll-build
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
steps:
- name: Deploy artifact
id: deployment
uses: actions/deploy-pages@v4
# ...
Связывание отдельных заданий сборки и развертывания
Вы можете связать свои build задания deploy в одном файле рабочего процесса, устраняя необходимость создания двух отдельных файлов для получения одного результата. Чтобы приступить к работе с файлом jobs рабочего процесса, в разделе build можно определить и deploy задание для выполнения заданий.
# ...
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
# Deployment job
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# ...
В некоторых случаях можно объединить все в одно задание, особенно если для процесса сборки нет необходимости. Следовательно, вы будете сосредоточиться исключительно на шаге развертывания.
# ...
jobs:
# Single deploy job no building
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload Artifact
uses: actions/upload-pages-artifact@v4
with:
# upload entire directory
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# ...
Вы можете определить задания, которые будут выполняться на разных запусках, последовательно или параллельно. Дополнительные сведения см. в разделе Выбор того, что делает рабочий процесс.