Комментарии 4
Мне подсказали, что описанный в статье образ для компиляции иногда может выдавать ошибки.
Если вы столкнетесь с этим, можно использовать dante-ev/latex-action@v0.2.0.
В коде это приведет к изменению
      uses: xu-cheng/latex-action@v2

на
      uses: dante-ev/latex-action@v0.2.0


Спасибо stdereka за наводку!

Спасибо за статью! Как раз сейчас возникла потребность в автоматическом режиме собирать pdf'ки из латеха.


Не знаете ли, можно ли собирать pdf только в том случае, если пушнутые коммиты затрагивали файлы внутри данной папки (скажем, tex)? У меня в проекте кроме латеха есть ещё куча исходников, которые я последнее время правлю сильно чаще, чем человеческий текст, а собирать по документу на совсем уж каждый чих выглядит расточительным.

Вообще, если Вы не хотите триггерить билд при отсутствии изменений в .tex файлах, то это будет сделать сложно. Насколько мне известно, CI/CD был задуман так, чтобы запускаться на каждый коммит/тег/ветку.

Если Вас устроит такой вариант, можно просто научить раннер пропускать сборку при отсутствии изменений в .tex-файлах. Сходу приходит такая мысль: считать md5-сумму всех .tex-файлов в конце сборки и сохранять ее как артефакт. Затем можно в начале сборки загружать сохраненную с предыдущей сборки md5-сумму, считать на исходниках и сверять: если совпали, то не выполнять сборку tex-файлов.
Это звучит как грязный хак, но должно сработать.

О, а я уже решил эту проблему, но, к сожалению, забыл про это написать. Решение на самом деле очень простое, нужно в on добавить правильный предикат. Например, для моего проекта соответствующий .yml выглядит так:


on:
  push:
    branches: [ master ]
    paths:
    - 'tex/**'
  pull_request:
    branches: [ master ]
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.