静态网站的github自动部署

时间:2017-10-07 08:59:19

标签: git github deployment web-deployment devops

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

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

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

  1. git push触发github中的webhook(特定标签表示prod。服务器要更新)
  2. GitHub通过webhook
  3. 调用生产服务器
  4. 一个小nodejs应用程序在生产服务器上侦听钩子并触发git pull
  5. 我看到的缺点是,我需要打开&在生产服务器上保护端口(涉及IP表,过滤等)。

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

    由于 基督徒

2 个答案:

答案 0 :(得分:1)

如果您正在使用AWS ...

(无服务器)按照建议在 S3 / CloudFront 上托管您的静态网站既便宜又快(CDN),您不必担心自己扩展。请注意,您必须使用 aws s3 sync 通过 AWS CLI 上传您的网站,或使用您自己的上传脚本分配或猜测正确的mime文件的类型。

(24/7服务器)回答您的原始问题,因为有些人仍需要自己的服务器。我建议将CodePipeline与GitHub集成,CodeBuild(如果需要)和CodeDeploy一起使用。

流程快速摘要

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

答案 1 :(得分:0)

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

我还建议您查看CircleCI,它可以自动免费部署对您的github存储库的任何更改。

查看这两篇博文:herehere