Skip to main content

Использование пользовательских рабочих процессов с GitHub Pages

Вы можете воспользоваться преимуществами использования GitHub Actions и GitHub Pages создания файла рабочего процесса или выбора из предопределенных рабочих процессов.

Кто может использовать эту функцию?

GitHub Pages доступен в общедоступных репозиториях с GitHub Free и GitHub Free для организаций, а также в общедоступных и частных репозиториях с GitHub Pro, GitHub Team, GitHub Enterprise Cloudи GitHub Enterprise Server. Дополнительные сведения см. в разделе Планы GitHub.

Сведения о пользовательских рабочих процессах

Пользовательские рабочие процессы позволяют 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

# ...

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