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.

Latexmk: comando no encontrado con Gitalb CI

Estoy intentando crear un repositorio en Gitlab con una integración continua (CI) que compile automáticamente un archivo .tex a un PDF.

Utilizando la plantilla de Gitlab para LaTeX (https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/gitlab/ci/templates/LaTeX.gitlab-ci.yml), mi archivo .gitlab-ci.yml se ve de la siguiente manera:

variables:
  LATEX_IMAGE: listx/texlive:2020

build:
  image: $LATEX_IMAGE
  script:
    - latexmk -pdf

artifacts:
  paths:
    - "main.pdf"

Además, en mi repositorio principal hay un archivo main.tex, obviamente.

Al realizar un cambio, el trabajo (job) se inicia como se supone, pero falla al intentar ejecutar el script. Adjunto aquí el registro para referencia:

Running with gitlab-runner 14.5.1 (de104fcd)
  on selenium
Preparing the "shell" executor 00:00
Using Shell executor...
Preparing environment 00:00
Running on selenium...
Getting source from Git repository 00:00
Fetching changes with git depth set to 50...
Bestehendes Git-Repository in /some/anonymised/path neuinitialisiert
Checking out 4f46c62b as feature-setup...
Skipping Git submodules setup
Executing "step_script" stage of the job script 00:00
$ latexmk -pdf
bash: Zeile 120: latexmk: Kommando nicht gefunden.
Cleaning up project directory and file based variables 00:00
ERROR: Job failed: exit status 1

Soy bastante nuevo en la implementación de CI/CD con Gitlab en general. Por lo tanto, no estoy seguro de cómo depurar más y dónde puede estar el problema.

¡Gracias de antemano!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el script está fallando porque no puede encontrar el comando “latexmk”.

    “latexmk” es un script de Perl que automatiza el proceso de generación de documentos LaTeX, por lo que debe estar instalado en el sistema que ejecuta el trabajo de CI.

    En el archivo .gitlab-ci.yml provisto, la variable LATEX_IMAGE está configurada como “listx/texlive:2020”, que es una imagen de Docker que contiene el comando “latexmk”.

    Por lo tanto, verifica que la imagen de Docker especificada en la sección de compilación del trabajo de CI contenga latexmk.

    Si la imagen de Docker es correcta, entonces es posible que el script no se esté ejecutando dentro del contenedor de Docker.

    Una forma de depurar este problema es agregar el comando “which latexmk” a la sección de script del archivo .gitlab-ci.yml, que mostrará dónde se está ejecutando el comando “latexmk”.

    Si “which latexmk” devuelve un error, entonces no se está ejecutando. En ese caso, verifica si la imagen de Docker se está ejecutando correctamente y si la ruta al archivo main.tex es correcta.

    Además, asegúrate de que el pipeline de CI/CD tenga los permisos correctos para descargar y ejecutar la imagen de Docker con el siguiente comando:

    docker pull listx/texlive:2020
    docker run --rm -i listx/texlive:2020 latexmk -v
    

    Si eso no funciona, los registros de fallos deberían proporcionar más información sobre lo que salió mal, lo cual se puede utilizar para seguir depurando el problema.

Comments are closed.