我目前使用 s3cmd 部署 PHP 应用程序的静态资产。
如果 Amazon S3 的资产发生了更改(如 JavaScript 脚本),我将手动重命名它,以便新版本由 Amazon Cloudfront 同步和提供服务。
是否有将 PHP 应用程序的静态资产部署到 Amazon S3 的记录实践?我已经看到站点使用哈希来引用其资产的特定部署版本。我想知道让 Web 应用程序引用该哈希(如 git 提交 SHA?)的方法。
我可以看到有效的方法是写入保存当前 SHA 的独立配置文件,并从中读取以进行部署。
使用当前进程更新 1
我希望使资产的部署更加自动化:
- 对应用的 JavaScript 进行更改
- 将脚本从
app.23.js
重命名为app.24.js
- 编辑网站的标题 HTML 模板以引用
app.24.js
- 将所有更改提交到 git 将
develop
分支合并到master
- 使用新版本号标记提交
- 将代码推送到 BitBucket
- 使用 s3cmd 将新脚本同步到 Amazon S3(以及 Cloudfront CDN)
- SSH 进入服务器,并拉取最新的 git 树。生产服务器为
master
分支提供服务。
我想这个问题
没有具体的答案,但这里有几件事。
如果您只想自动执行正在执行的手动工作,那么可能值得研究一些部署工具。Capistrano和Magallanes是我想到的两个名字,但你可以谷歌一下,我相信你会发现很多选择。
Rails框架建立在有最好的做事方法的理念之上。它还使用哈希对静态资产进行版本控制,并即时完成开箱即用的操作。您可以考虑在您的案例中实现哈希。
Grunt 是您可以研究的另一种自动化工具。我发现这个模块可能会派上用场 https://github.com/theasta/grunt-assets-versioning
我想说的是,2,3,4是您工作流程中的问题区域。手动重命名并每次更新代码听起来不太好。正如您所指出的,GIT 哈希是唯一的,因此也许可以在部署期间将 GIT 哈希附加到您的资产并将它们同步到 S3/Cloudfront ?