github自动部署静态网站

github自动部署静态网站,git,github,deployment,web-deployment,devops,Git,Github,Deployment,Web Deployment,Devops,我们有很多我们维护的小型静态站点。我们在GitHub上管理我们的项目 我目前正在寻找自动部署到linux服务器的标准方法,只需最少的手动步骤 我目前找到了以下解决方案: git推送会触发github中的webhook,特定的标签会向产品服务器发出更新的信号 GitHub通过webhook调用生产服务器 一个小型nodejs应用程序在生产服务器上侦听钩子并触发git拉取 我看到的缺点是,我需要在生产服务器上打开并保护一个涉及IP表、过滤等的端口 还有别的办法吗?我非常怀疑没有轻量级的开箱即用解决方

我们有很多我们维护的小型静态站点。我们在GitHub上管理我们的项目

我目前正在寻找自动部署到linux服务器的标准方法,只需最少的手动步骤

我目前找到了以下解决方案:

git推送会触发github中的webhook,特定的标签会向产品服务器发出更新的信号 GitHub通过webhook调用生产服务器 一个小型nodejs应用程序在生产服务器上侦听钩子并触发git拉取 我看到的缺点是,我需要在生产服务器上打开并保护一个涉及IP表、过滤等的端口

还有别的办法吗?我非常怀疑没有轻量级的开箱即用解决方案,我不想设置像Jenkins、Bambor等这样的CI服务器

谢谢
Christian

我知道您已经有了生产服务器。但是你有没有考虑过在AWS S3上托管那些静态网站?它非常便宜而且非常可靠

我还建议看一看CircleCI,它可以将对github repos的任何更改自动免费部署到S3


看看这两篇博文:和。

如果您正在使用AWS

按照建议,在S3/CloudFront上无服务器托管静态网站是一种便宜、快速的CDN,而且您不必担心自己的扩展。请注意,您必须使用AWS s3 sync通过AWS CLI上载网站,或者使用自己的上载脚本来分配或猜测正确的mime文件类型

24/7服务器回答您最初的问题,因为有些服务器仍然需要自己的服务器。我建议将CodePipeline与GitHub集成、CodeBuildIf needed和CodeDeploy一起使用

快速总结过程

试用期后创建新的代码管道1$/月 在CodePipeline中创建Github源代码,并完成登录过程和repo选择。 可选将源工件传递给CodeBuild,以构建您的代码npm build..等 可选我建议在生产部署的CodePipeline中执行手动批准步骤。如果您愿意,您可以让它完全自动化以用于您的测试环境。 将构建的工件传递给CodeDeploy以部署到EC2实例或自动缩放目标组。您可以通过在源代码中包含appspec文件来定义CodeDeploy部署过程。 至少为部署失败设置SNS通知。
您可以编写一个常规的git pull脚本或任何命令,以查看是否有任何更改,以及是否有任何更改,然后继续部署。Windows和Linux都允许调度任务。这将适用于任何git存储库,而不仅仅是github。感谢@ThorbjørnRavnAndersen,这确实是一个简单的解决方案,也很容易设置,但我不想一直造成不必要的流量。如果服务器上没有新内容,git pull不会真正下载任何内容。当然,您需要将.git目录保留在服务器上,以避免每次拉取时都需要获取整个repo。@mostafazh我可以完成完整的repo任何原因您不能将服务器作为远程服务器?谢谢mostafazh非常有趣,我将研究它!我主要是寻找一个解决方案,没有第三方参与。