2017-10-07 161 views
0

我们有很多我们维护的小静态网站。我们在GitHub上管理我们的项目。github自动部署静态网站

我目前正在寻找标准的方式来自动部署到一个Linux服务器,只需要很少的手动步骤。

我现在找到了以下解决方案:

  1. 一个混帐推触发GitHub的一个网络挂接(特定的标签信号督促服务器进行更新。)
  2. GitHub上通过网络挂接调用生产服务器
  3. 一个小应用程序的NodeJS监听钩在生产服务器上,并触发混帐拉

的缺点是我看到的,我需要打开&在生产服务器上保护端口(涉及IP表,过滤等)。

是否有另一种方法呢?我非常怀疑没有轻量级的开箱即用解决方案(我不想设置Jenkins,Bamboo等CI服务器)。

感谢 基督教

+0

您可以编写一个常规的“git pull”(或任何命令查看是否有任何更改)以及部署是否有任何更改。 Windows和Linux都允许调度任务。这将适用于任何git存储库,而不仅仅是github。 –

+0

谢谢@ThorbjørnRavnAndersen,这肯定是一个直接的解决方案,也很容易设置,但我不想一直导致不一致的流量。 – Chris

+0

如果没有新的东西从服务器上获取,'git pull'不会真的下载任何东西。当然,您需要将'.git'目录保存在服务器上,以避免在每次pull时都得到整个repo。 – mostafazh

回答

0

我知道你已经有你的生产服务器。但是您是否曾考虑在AWS S3上托管这些静态网站?它非常非常便宜,非常可靠。

我还建议看看CircleCI,它可以自动和免费地将任何更改部署到您的github回购站。

看看那2条博客文章:herehere

+1

感谢mostafazh非常有趣,我会看看它!我主要寻找一个解决方案,没有涉及第三方。 – Chris

1

如果您正在使用AWS ...

(无服务器)主机上S3/CloudFront的您的静态网站所建议的是价格便宜,速度快(CDN),你不担心缩放你自己。请注意,您必须通过AWS CLI使用aws s3同步上传您的网站,或者使用您自己的上传脚本来指定或猜测正确的MIME类型的文件。

(24/7服务器)回答你原来的问题,因为有些人仍然需要他们自己的服务器。我建议使用CodePipeline和GitHub集成,CodeBuild(如果需要)和CodeDeploy。

过程的快速汇总

  • 创建一个新的CodePipeline($ 1 /月后,试用期)
  • 创建一个Github上源CodePipeline并办理注册过程,并回购选择。
  • (可选)将源代码文件传递到CodeBuild构建代码(npm build ..等等)
  • (可选)我建议在生产部署中使用CodePipeline中的手动批准步骤。如果您愿意,您可以将其完全自动化以用于您的测试环境。
  • 将构建的工件传递到CodeDeploy将部署到您的EC2实例或自动调节目标组。您通过在源代码中包含appspec文件来定义您的CodeDeploy部署过程。
  • 设置SNS至少部署失败的通知。