我想知道如何让我的服务器在推送到 github 时自动构建 LaTeX 项目。目前,我通常在本地构建项目,推送到 github,然后手动将 PDF 复制到服务器上并将其移动到正确的位置。话虽如此,我真的很想找到一种方法来做到这一点,而不需要手动复制到服务器上。我通常不会在我的 git 存储库中包含 PDF。
我曾经有詹金斯安装在服务器上并使用 github 进行设置,以便当我推送时它会构建项目,但对于仅构建 LaTeX 项目来说,这感觉有点过度,而我实际上只需要运行latexmk
。
我在网上搜索了一下,发现
我还发现了一个想法,我可以为我的 git repo 设置两个远程仓库,并同时推送到 github 和我的服务器,并且有一个post-recieve
通过 设置操作git
。 这些都感觉不太优雅,因此我在这里询问,看看是否还有其他人有其他想法。
答案1
如果有人来这里寻找答案,我现在有一个好的设置。
我选择了 github 操作,因为我已经在使用 github 了。它并不理想,因为有锁定,但它确实有效。操作文件在这里:https://github.com/natestemen/cultvoucher/blob/main/.github/workflows/build.yml,但我会稍微描述一下。
- 首先,该操作使用以下方式检查项目https://github.com/actions/checkout
- 然后使用以下代码构建项目:https://github.com/xu-cheng/latex-action我认为它可以让你完全访问 texlive。
- 最后,它使用一个
scp
操作将文件复制到我的服务器中,该位置与我网站上提供的文件的符号链接在一起。操作如下https://github.com/appleboy/scp-action,所有机密均由 github 处理。
自设置以来我只使用了几次,但效果很好。