es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Automatizar la generación de documentos en Github Pages cuando se lance una nueva versión.

En un repositorio de GitHub my_repo, pude configurar correctamente las acciones de GitHub para activar la compilación, pruebas y documentación:

name: CMake

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  BUILD_TYPE: Release

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install dependencies
      run: sudo apt-get install -y --no-install-recommends libboost-all-dev libgdal-dev doxygen graphviz

    - name: Configure CMake
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

    - name: Build
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

    - name: Test
      working-directory: ${{github.workspace}}/build
      run: ctest -C ${{env.BUILD_TYPE}}

    - name: Docs
      working-directory: ${{github.workspace}}/build
      run: make doc

También implementé Release Drafter para automatizar el proceso de incrementar las versiones:

name: Release Drafter

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, reopened, synchronize]

jobs:
  update_release_draft:
    runs-on: ubuntu-latest
    steps:
      - uses: release-drafter/release-drafter@v5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Ahora, me gustaría automatizar lo siguiente:

  • Se lanza una versión principal en el repositorio my_repo.
  • Esto activa un evento en mi repositorio de Github Pages.
  • La documentación se genera en mi repositorio de Github Pages en la carpeta softs/my_repo/docs.
  • El sitio web se publica (equivalente a realizar un commit y empujar la rama master).

No sé exactamente cómo implementarlo. ¿Debo escribir un flujo de trabajo de Github en mis Páginas de Github para “escuchar” lo que está sucediendo en el proyecto my_repo? Además, ¿cómo puedo transmitir la versión desde my_repo a Doxygen?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para automatizar el proceso de construcción de la documentación en tu repositorio de Github Pages y publicarla cuando se lance una versión principal en tu my_repo, puedes utilizar las Acciones de Github y los siguientes pasos:

    1. En tu repositorio de Github Pages, crea un nuevo flujo de trabajo de Acciones de Github creando un directorio .github/workflows si no existe y agregando un nuevo archivo YAML (por ejemplo, build.yml). En este archivo, define el flujo de trabajo que escucha el evento de lanzamiento de my_repo y desencadena la construcción y publicación de la documentación. Aquí tienes un ejemplo:
    name: Construir y Publicar Documentación
    
    on:
      push:
        branches:
          - master
      release:
        types: [created]
    
    env:
      DOCS_FOLDER: "softs/my_repo/docs"
    
    jobs:
      build-and-publish:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
    
          - name: Configurar Python
            uses: actions/setup-python@v2
            with:
              python-version: "3.8"
    
          - name: Instalar Doxygen
            run: sudo apt-get install -y doxygen graphviz
    
          - name: Instalar dependencias
            run: pip install -r requirements.txt
    
          - name: Construir Documentación
            run: |
              doxygen Doxyfile
              cd "$DOCS_FOLDER"
              git config user.email "<github-email>"
              git config user.name "<github-name>"
              git add .
              git commit -m "Documentación actualizada"
              git push origin master
    
    
    1. Envía el archivo build.yml a la rama master de tu repositorio de Github Pages para activar el flujo de trabajo.
    2. En tu my_repo, puedes incluir los siguientes pasos para enviar la información de la versión a tu archivo de configuración de Doxygen:

    - name: Configurar CMake
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DVERSION=${{github.ref}}
    

    Esto configura CMake para agregar la información de la versión a tu compilación, que luego puedes enviar a tu archivo de configuración de Doxygen.

    1. En tu archivo de configuración de Doxygen, puedes incluir lo siguiente para utilizar la información de la versión:
    # Versionado
    PROJECT_NUMBER         = "@PROJECT_NUMBER@"
    

    Esto permite que tu documentación de Doxygen utilice la información de la versión proporcionada por tu my_repo.

    Con estos pasos en su lugar, cada vez que se cree un lanzamiento principal en my_repo, el flujo de trabajo de Github Actions en tu repositorio de Github Pages se activará, lo cual a su vez construirá la documentación y la publicará en la carpeta deseada.

Comments are closed.