我的个人主页使用私有GitHub存储库进行版本控制,我也提供了许多在我的课程中使用的工作表。对于那些工作表,我有另一个私有存储库保存LaTeX源文件,到目前为止,我已手动将pdf输出上传到我的服务器并在数据库中注册它们。为了自动化这一点,我正在考虑找到构建和部署pdfs的解决方案,而无需手动将文件上传到我的服务器上。
我偶然发现了持续整合这一术语,Travis-CI作为一项服务可能有助于促进我的需求。根据{{3}},没有独立的LaTeX支持,但我读到了一些关于使用支持LaTeX的R环境的内容。这是我必须尝试的,以确定它是否适合我的需要。
假设我设法设置一个能够编译我的LaTeX源的环境(这可能很粗糙,因为我可能无法使latexmk
工作)我可以选择哪些部分进行部署?起初我想过使用SFTP将生成的pdf输出上传到我的私人主页,但这是围绕将SFTP的用户凭据存储到配置文件中,然后上传到GitHub。另一种想法是公开一个可以被调用来接收输出文件的脚本,但是一旦有人获得了这个网址,这就不安全了。
之后我读到了关于Github Releases的内容,这将是一种更安全的方式来托管我的输出文件而不是摆弄上传到我的服务器。然后,我只需要在我的网站上使用“爬虫”,它可以获取某个标签或最新版本下的所有可用文件。但是需要注意的是,我仍然没有完成的文件或者以后应该可用的文件可以直接访问。在我的第一个场景中,我的注册文件已经在数据库中为它们分配了时间戳,以防止在一定时间之前下载(用于家庭作业的解决方案等)。
考虑到这些想法,我想问一下,在这种情况下Travis-CI是否过于过度工程化和/或是否有更适合我特定需求的解决方案。
答案 0 :(得分:1)
我们使用Travis建立一个基于Jekyll的网站,我们部署到Amazon S3(使用s3_website,但Travis开箱即可支持whole bunch of deployment options)。我认为解决方案有点矫枉过正,但现在我们已经使用了一段时间我很开心。如果您只是需要一种安全部署网站的方法,您可以使用environment variables或encryption keys将您的秘密安全地传递给Travis。