#gitlab #latex #gitlab-ci
#gitlab #Латекс #gitlab-ci
Вопрос:
Я пытаюсь создать репозиторий в Gitlab с CI, который автоматически компилирует файл .tex в PDF.
Использование шаблона Gtilab для LaTeX (https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/gitlab/ci/templates/LaTeX.gitlab-ci.yml ) поэтому my .gtilab-ci.yml выглядит следующим образом.
variables:
LATEX_IMAGE: listx/texlive:2020
build:
image: $LATEX_IMAGE
script:
- latexmk -pdf
artifacts:
paths:
- "main.pdf"
Также в моем основном репозитории, очевидно, есть main.tex.
При внесении изменений задание запускается, как и предполагалось, но при попытке выполнить сценарий оно завершается с ошибкой. Я прилагаю журнал для справки здесь:
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
Я довольно новичок в реализации CI / CD с Gitlab в целом. Поэтому я не уверен, что дальше отлаживать и в чем может заключаться проблема.
Заранее спасибо!
Ответ №1:
В задании используется исполнитель оболочки GitLab (из журнала: Preparing the "shell" executor 00:00
), который будет выполнять script
команды на локальном компьютере, а не в указанном контейнере Docker.
Некоторые решения заключались бы в:
- Установите программу GitLab docker runner на свой хост (предпочтительный вариант) или
- Установите
texlive
на локальную машину, на которой выполняетсяgitlab-runner