我有一个NodeJs应用程序。我有一个Jenkins任务,它执行以下操作:
- 进行git克隆
- 运行npm install
- 运行测试
- 压缩所有的html、css、js文件
- 使用aws同步将静态内容发送到S3
- 压缩非静态内容以便稍后部署到我们的阶段环境。
- 可能缓存节点模块并不每次都运行npm install
- 使用artifactory作为本地节点模块存储
- 并行运行aws同步命令
- 使用s3cmd命令代替aws sync(我们有一个问题,因为git clone会更改文件的修改时间,所以aws sync会将相同的文件发送到S3)
- 使用git diff获取文件更改列表,只向S3发送那些文件