Como fazer o deploy do Python Sphinx no Github pages

Renato CruzRenato Cruz
2 min read

Hoje veremos como utilizar o GitHub Actions para automatizar o processo de deploy do Python Sphinx no Github Pages.

O que é o Sphinx?

O Sphinx é uma poderosa ferramenta de documentação que facilita a criação de documentação para projetos Python.

Ele é frequentemente usado para criar documentação de código-fonte, manuais de usuário, guias de API e outros tipos de documentação.

O Sphinx utiliza arquivos de marcação simples, como reStructuredText, para escrever a documentação e suporta a geração de saída em vários formatos, como HTML, PDF, ePub e man pages.

Ele também oferece recursos avançados, como indexação automática, geração de índices, suporte para diagramas e integração com ferramentas de construção como o make.

Essas características fazem do Sphinx uma escolha popular para projetos Python que valorizam uma documentação completa e bem formatada.

Github Pages

O GitHub Pages é um serviço oferecido pelo GitHub que permite hospedar websites estáticos diretamente a partir de um repositório do GitHub.

Ele é comumente usado para hospedar páginas de documentação, blogs pessoais, páginas de projetos e sites simples.

O GitHub Pages suporta sites estáticos gerados a partir de arquivos HTML, CSS e JavaScript, bem como frameworks estáticos como Jekyll, Hugo, Sphinx e Gatsby.

Criando o arquivo de deploy

No repositório crie um arquivo pages.yaml em .github/workflows.

⚠️ O arquivo pode ter o nome que você desejar.

Dentro do arquivo pages.yaml será utilizado o seguinte código:

# Fluxo de deploy para documentação com Python e Sphinx no Github pages.
name: Deploy Sphinx content to Pages.

on:
  push:
    branches: ['main']
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: 'pages'
  cancel-in-progress: true

jobs:
  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: Install Python 🐍
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
          cache: 'pip'

      - name: Install requirements 🔨
        working-directory: .
        run: pip install -r requirements-docs.txt

      - name: Sphinx make dirhtml 🌎
        working-directory: ./docs
        run: make dirhtml

      - name: Upload artifact 🚀
        uses: actions/upload-pages-artifact@v3
        with:
          path: './docs/build/dirhtml'

      - name: Deploy to GitHub Pages 💻
        id: deployment
        uses: actions/deploy-pages@v4

Ao final do processo de deploy acesse a URL do repositório (https://usuário.github.io/repositório/) para ter acesso a sua documentação/site no Github Pages.

Também é possível executar essa Github Action através da interface web do Github, para isso basta clicar na aba Actions.

Se o deploy não ocorrer vefifique as configurações do repositório em settings -> pages.


Conclusão

O GitHub Actions e o Github Pages são ferramentas poderosas para automatizar e personalizar seu fluxo de trabalho de desenvolvimento, ajudando a melhorar a produtividade e a consistência do seu projeto.

0
Subscribe to my newsletter

Read articles from Renato Cruz directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Renato Cruz
Renato Cruz

👨‍💻 Desenvolvedor de Software | Pós graduado em desenvolvimento de aplicativos com Python. 👋 Bem-vindo ao meu mundo digital!