Сведения о пользовательских рабочих процессах
Пользовательские рабочие процессы позволяют создавать сайты GitHub Pages с помощью GitHub Actions. Вы по-прежнему можете выбрать ветвь, используемую с помощью файла рабочего процесса, но вы можете сделать гораздо больше с использованием пользовательских рабочих процессов. Чтобы начать использование пользовательских рабочих процессов, необходимо сначала включить их для текущего репозитория. Дополнительные сведения см. в разделе «Настройка источника публикации для сайта GitHub Pages».
configure-pages
Настройка действия
GitHub Actions позволяет использовать GitHub Pages через configure-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@v3
Развертывание артефактов 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
в одном файле рабочего процесса, устраняя необходимость создания двух отдельных файлов для получения одного результата. Чтобы приступить к работе с файлом build
рабочего процесса, в разделе jobs
можно определить и deploy
задание для выполнения заданий.
# ...
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- 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@v3
# 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@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload Artifact
uses: actions/upload-pages-artifact@v3
with:
# upload entire directory
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# ...
Вы можете определить задания, которые будут выполняться на разных запусках, последовательно или параллельно. Дополнительные сведения см. в разделе «Выбор того, что делает рабочий процесс».