我想在 github 上的项目中使用 travis-ci,此处提供 MWE。
我正在使用以下.travis.yml
文件,按照此处给出的步骤操作最小 CI LaTeX 构建器地点。
before_install:
- sudo apt-get update -qq
- sudo apt-get install texlive-latex-base
script:
- mkdir build
- pdflatex -output-directory build Example.tex
deploy:
provider: releases
api_key:
secure: <mykey>
file: Example.pdf
skip_cleanup: true
on:
repo: HughParsonage/travis-latex-ci
但是,当我推动提交时,出现错误scrreprt.cls not found
。
我尝试将安装更改为sudo apt-get install texlive-latex-extra
,但出现错误adjustbox.sty not found
。
我理解这些错误——我请求 travis 使用的 TeX Live 发行版没有我需要的包/类文件,但不知道如何通过文件解决它们.travis.yml
。我理解我可以将相应的.cls/.sty
文件放在同一个目录中,直到没有构建错误。但是,有没有办法在 travis 机器上获取所有这些包?
答案1
在本地系统上,可以简单地安装“所有 TeX Live”并避免这些问题。对于远程测试系统,您需要最小化安装大小,这更加困难。(是的,Travis-CI 将缓存已安装的软件包,但要求所有 TeX Live 可能有些极端。)
正如所讨论的如何在 Linux 系统上安装单独的软件包?,可以查找哪个 Ubuntu 包包含哪个.sty
文件(或类似文件),从而调试这些问题。但是,在“实时”系统上运行时,这仍然可能容易出错。因此,我建议设置与您选择的 CI 系统相匹配的虚拟机:例如,Travis-CI 目前使用 Ubuntu 12.04 LTS。然后,您可以“本地”测试(并可以访问日志,ETC。) 到底需要安装哪些包,不需要安装哪些包才能使事情正常进行。
正如评论中所述,对于 LaTeX3 开发,我们有设置 Travis-CI,但使用脚本它会安装“vanilla”TeX Live,而不是使用 Ubuntu 打包版本。这种方式的注意事项大致相同:选择所需的 TeX 包,省略其他包。从这个意义上讲,测试编程和测试文档之间没有真正的区别:仍然是找出需要什么并安装它的问题。