{"meta":{"title":"Использование пользовательских рабочих процессов с GitHub Pages","intro":"Вы можете воспользоваться преимуществами использования GitHub Actions и GitHub Pages создания файла рабочего процесса или выбора из предопределенных рабочих процессов.","product":"GitHub Pages","breadcrumbs":[{"href":"/ru/pages","title":"GitHub Pages"},{"href":"/ru/pages/getting-started-with-github-pages","title":"Начало работы"},{"href":"/ru/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages","title":"Использование пользовательских рабочих процессов"}],"documentType":"article"},"body":"# Использование пользовательских рабочих процессов с GitHub Pages\n\nВы можете воспользоваться преимуществами использования GitHub Actions и GitHub Pages создания файла рабочего процесса или выбора из предопределенных рабочих процессов.\n\n## Сведения о пользовательских рабочих процессах\n\nПользовательские рабочие процессы позволяют GitHub Pages создавать сайты с помощью использования GitHub Actions. Вы по-прежнему можете выбрать ветвь, используемую с помощью файла рабочего процесса, но вы можете сделать гораздо больше с использованием пользовательских рабочих процессов. Чтобы начать использование пользовательских рабочих процессов, необходимо сначала включить их для текущего репозитория. Дополнительные сведения см. в разделе [Настройка источника публикации для вашего сайта GitHub Pages](/ru/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).\n\n## `configure-pages` Настройка действия\n\nGitHub Actions позволяет использовать GitHub Pages`configure-pages` действие, которое также позволяет собирать различные метаданные о веб-сайте. Дополнительные сведения см. в описании действия [`configure-pages`](https://github.com/marketplace/actions/configure-github-pages).\n\nЧтобы использовать действие, поместите этот фрагмент в `jobs` нужный рабочий процесс.\n\n```yaml\n- name: Configure GitHub Pages\n  uses: actions/configure-pages@v5\n```\n\nЭто действие помогает поддерживать развертывание из любого генератора GitHub Pagesстатических сайтов в . Чтобы сделать этот процесс менее повторяющимся, можно использовать шаблоны рабочих процессов для некоторых наиболее широко используемых статических генераторов сайтов. Дополнительные сведения см. в разделе [Использование шаблонов рабочих процессов](/ru/actions/how-tos/write-workflows/use-workflow-templates).\n\n## `upload-pages-artifact` Настройка действия\n\nДействия `upload-pages-artifact` позволяют упаковывать и отправлять артефакты.\nGitHub Pages Артефакт должен быть сжатым `gzip` архивом, содержащим один `tar` файл. Файл `tar` должен быть размером до 10 ГБ и не должен содержать символьные или жесткие ссылки. Дополнительные сведения см. в описании действия [`upload-pages-artifact`](https://github.com/marketplace/actions/upload-github-pages-artifact).\n\nЧтобы использовать действие в текущем рабочем процессе, введите этот фрагмент кода в раздел `jobs`.\n\n```yaml\n- name: Upload GitHub Pages artifact\n  uses: actions/upload-pages-artifact@v4\n```\n\n## GitHub Pages Развертывание артефактов\n\nДействие `deploy-pages` обрабатывает необходимую настройку для развертывания артефактов. Чтобы обеспечить правильную функциональность, необходимо выполнить следующие требования:\n\n* Задание должно иметь минимальное количество `pages: write` разрешений и `id-token: write` разрешений.\n* Параметр `needs` должен быть задан на `id` шаге сборки. Если этот параметр не задан, это может привести к независимому развертыванию, которое постоянно выполняет поиск артефакта, который не был создан.\n* Необходимо `environment` установить для применения правил защиты филиалов и развертываний. Среда по умолчанию `github-pages`.\n* Чтобы указать URL-адрес страницы в качестве выходных данных, используйте `url:` поле.\n\nДополнительные сведения см. в описании действия [`deploy-pages`](https://github.com/marketplace/actions/deploy-github-pages-site).\n\n```yaml\n# ...\n\njobs:\n  deploy:\n    permissions:\n      contents: read\n      pages: write\n      id-token: write\n    runs-on: ubuntu-latest\n    needs: jekyll-build\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    steps:\n      - name: Deploy artifact\n        id: deployment\n        uses: actions/deploy-pages@v4\n# ...\n```\n\n## Связывание отдельных заданий сборки и развертывания\n\nВы можете связать свои `build` задания `deploy` в одном файле рабочего процесса, устраняя необходимость создания двух отдельных файлов для получения одного результата. Чтобы приступить к работе с файлом `jobs` рабочего процесса, в разделе `build` можно определить и `deploy` задание для выполнения заданий.\n\n```yaml\n# ...\n\njobs:\n  # Build job\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      - name: Setup Pages\n        id: pages\n        uses: actions/configure-pages@v5\n      - name: Build with Jekyll\n        uses: actions/jekyll-build-pages@v1\n        with:\n          source: ./\n          destination: ./_site\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v4\n\n  # Deployment job\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n# ...\n```\n\nВ некоторых случаях можно объединить все в одно задание, особенно если для процесса сборки нет необходимости. Следовательно, вы будете сосредоточиться исключительно на шаге развертывания.\n\n```yaml\n# ...\n\njobs:\n  # Single deploy job no building\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Upload Artifact\n        uses: actions/upload-pages-artifact@v4\n        with:\n          # upload entire directory\n          path: '.'\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n# ...\n```\n\nВы можете определить задания, которые будут выполняться на разных запусках, последовательно или параллельно. Дополнительные сведения см. в разделе [Выбор того, что делает рабочий процесс](/ru/actions/how-tos/write-workflows/choose-what-workflows-do)."}