【发布时间】:2016-09-20 07:37:55
【问题描述】:
我正在开发一个多人项目,一个网站应用程序,它需要构建、丑化、连接到几个文件中的 webpack,例如app.min.js、style.min.css 等 - 因此,为了防止合并冲突,我们最近将构建文件夹添加到 .gitignore,假设我们能够在部署期间构建。
当推送到 Master 分支时,我们通过 Semaphore CI(类似于 Travis)自动“部署”,它运行 composer install、npm install,最后是触发 webpack 构建的“npm run build”。这一切都是在 CI 方面构建和测试的,然后 Semaphore 会自动部署到托管我们应用程序的 Amazon 的 Elastic Beanstalk。
问题在于,Semaphore 似乎没有上传它刚刚测试的构建,而是没有构建 JS 或 CSS 的 Master 分支本身。我想知道是否有办法将这些构建的文件也推送到部署,或者是否在 Elastic Beanstalk 上再次运行整个构建过程是唯一的途径。基本上不需要执行 3 次该过程,本地、CI 和部署。每次在 EB 上需要这样的步骤时,实际的重新实例化时间都会变长,我希望尽可能短。
显然,如果在 EB 上第三次构建它是解决此问题的唯一方法,那么我将不得不这样做,只是想知道对于整个工作流程是否有更好的解决方案。
【问题讨论】:
-
你能让这个工作吗?我尝试了下面提到的@Dean 解决方案,但它不适用于我尝试过的 CI 系统。但它在本地工作。
标签: deployment continuous-integration amazon-elastic-beanstalk continuous-deployment