Интеграция с GitHub Actions и автоматическая публикация

В предыдущей статье мы обсуждали, как быстро генерировать документацию с помощью инструментов Sphinx CLI. В этой статье я продемонстрирую три различных способа публикации документации Sphinx. Следовательно, любой, у кого есть URL-адрес, может просматривать вашу документацию.

Я также интегрирую процессы публикации в GitHub Actions, чтобы они были полностью автоматизированы.

Опубликовать на страницах GitHub

GitHub Pages — хороший инструмент для размещения статического веб-сайта, например документации Sphinx. Я использую это действие GitHub, actions-gh-pages, для развертывания моей документации на страницах GitHub.

Его очень просто использовать. Вам просто нужно указать путь к вашей документации, например. docs/build, то это действие поможет вам справиться с остальными шагами!

- name: Publish to GitHub Pages
  uses: peaceiris/actions-gh-pages@v3
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    publish_dir: docs/build

Когда все будет готово, вы сможете просмотреть опубликованную документацию из https://<username>.github.io/<repository_name>/.

Довольно легко, правда? Переходим к следующей платформе.

Публикация в облачном хранилище GCP

Я рекомендую использовать действие GitHub upload-cloud-storage для загрузки вашей документации в GCS. Есть три шага, чтобы использовать это действие. Во-первых, настройте разрешение для своего задания, чтобы у вызывающей стороны было разрешение на доступ к секретам GitHub. Поскольку я также использую git-auto-commit-action для фиксации изменений, contents также следует установить как write.

permissions:
  contents: ‘write’
  id-token: ‘write’

Во-вторых, аутентифицируйте действие с помощью google-github-actions/auth, чтобы мы могли загружать файлы в GCS. Наконец, укажите каталог вашей документации и целевую корзину, например. my-sample-bucket-123.

- name: Gcloud Auth
  uses: ‘google-github-actions/auth@v0’
  with:
    credentials_json: ${{ secrets.GCP_CREDENTIALS }}
- name: Upload documentation to GCS
  uses: ‘google-github-actions/upload-cloud-storage@v0’
  with:
    path: ‘docs/build’
    destination: ‘my-sample-bucket-123’

Следующим шагом нам нужно сделать все объекты под my-sample-bucket-123 общедоступными. Следовательно, люди могут читать документацию в Интернете. Шаги можно найти здесь. Теперь вы можете просматривать свою документацию через https://storage.googleapis.com/<bucket-name>/build/index.html.

Однако GCS не поддерживает пользовательские домены. Вы можете настроить Балансировщик нагрузки перед GCS. Но это выходит за рамки данной статьи, поэтому я не буду обсуждать это здесь.

Вот полный рабочий процесс. Всякий раз, когда создается документация, этот рабочий процесс автоматически публикует нашу документацию на страницах GitHub и GCS.

Опубликовать в ReadTheDocs

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

После того, как вы импортируете проект, вам нужно перейти в AdminAdvanced Settings, под Default settings указать путь к файлу требований и путь к conf.py, чтобы он мог правильно построить документацию.

Когда вы видите Passed на вкладке Builds, это означает, что документация успешно создана! Нажмите View Docs, чтобы просмотреть документацию. Общедоступный URL-адрес будет https://<project-name>.readthedocs.io.

Краткое содержание

В последней статье мы создали скрипт для создания красивой документации и интеграции ее с GitHub Actions. В этой статье мы продемонстрировали три способа автоматической публикации вашей документации. Таким образом, теперь у нас есть полный конвейер для создания и размещения нашей документации! Я надеюсь, что вы найдете эти две статьи полезными для создания конвейера документации.

Полные примеры вы можете найти в этом репозитории.