2016-11-20 28 views
1

我的个人主页使用私人GitHub存储库进行版本控制,我也提供了许多用于我的课程的工作表。对于这些表我有另一个私人存储库持有LaTeX源文件,到目前为止,我已经手动将pdf输出上传到我的服务器并将它们注册到数据库中。为了自动化这一点,我正在考虑寻找解决方案来构建和部署PDF,而无需手动将文件上传到我的服务器上。简单的LaTeX构建和部署结合GitHub

我偶然发现了持续集成和Travis-CI这个服务,这可能有助于实现我想要的服务。根据this old ticket没有独立的LaTeX支持,但我读了一些关于使用支持LaTeX的R环境的信息。这是我不得不试验以确定它是否适合我的需求。

假设我设法设置了一个能够编译我的LaTeX源代码的环境(这会很粗糙,因为我可能无法使latexmk正常工作)我有什么可用的部署选项?起初,我想过使用SFTP将生成的PDF输出上传到我的私人主页,但是这涉及将用于SFTP的用户凭证存储到配置文件中,然后将其上载到GitHub。另一种想法是公开一个可以调用来接收输出文件的脚本,但是一旦有人获得了url,这个脚本就不安全了。

之后,我读了关于Github发布,这将是一种更安全的方式来托管我的输出文件,而不是摆弄上传到我的服务器。那么我只需要在我的网站上有一个“抓取工具”,它可以抓取某个标签或最新版本下的所有可用文件。但是需要注意的是,我仍然没有完成的文件或应该在以后提供的文件可以直接访问。在我的第一个场景中,我的注册文件已经在数据库中为它们分配了时间戳,以防止在某段时间之前下载(用于家庭作业的解决方案等)。

考虑到这些想法,我想问问你,在这种情况下,Travis-CI是否过度工程化和/或是否有更适合我的特殊需求的解决方案。

+0

我投票结束这个题外话题。它可能更适合超级用户或Unix/Linux。 –

+0

@RolandSmith我明白你的观点 - 但为什么投票结束它而不是将它迁移到超级用户?任何特定的原因? (老实说,我在考虑发布它的位置时也很努力。) –

+0

我投票迁移它。只有版主才可以直接迁移。 –

回答

1

我们使用Travis构建基于Jekyll的网站,我们部署到Amazon S3(使用s3_website,但Travis支持的whole bunch of deployment options开箱即用)。我认为解决方案有点矫枉过正,但现在我们已经使用它一段时间了,我很开心。如果您只需要一种安全部署网站的方法,您可以使用environment variablesencryption keys将您的秘密安全地传递给Travis。

+0

我只是偶然发现了环境变量 - 文档本身指出应该使用那些敏感信息,这些信息在所有分支中都是相同的。感谢迄今为止的那个提示。 –