我正在开发一个有多人的项目,一个网站应用程序,需要构建webpack,uglified,连接成几个文件,例如app.min.js,style.min.css等 - 因此,为了防止合并冲突,我们最近将构建文件夹添加到.gitignore,假设我们能够在部署期间构建。
当推送到Master分支时,我们通过Semaphore CI(类似于Travis)自动“部署”,运行composer install,npm install,最后是“npm run build”,它会触发webpack构建。这些都是构建的,然后在CI方面进行测试,然后Semaphore会自动部署到托管我们应用程序的Amazon的Elastic Beanstalk。
问题是,似乎Semaphore没有上传刚刚测试过的构建版本,而是上传了没有内置JS或CSS的Master分支。我想知道是否有办法将这些构建的文件推送到部署,或者如果在Elastic Beanstalk上运行整个构建过程AGAIN是唯一的路径。似乎没有必要基本上执行该过程3次,本地,CI,然后部署。每次在EB上需要这样的步骤时,实际的重新实例化时间会变得更长,我希望保持尽可能短的时间。
显然,如果在EB上第三次构建它是唯一的方法,那么我将不得不,只是想知道是否有更好的解决方案来完成整个工作流程。
答案 0 :(得分:3)
我还没与Semaphore CI合作,但您可以使用.ebignore file。
如果您创建一个,cli将使用它而不是.gitignore文件。
我发现在某些部署情况下你想要你的.gitignore的反转(所有编译,没有src)。它本质上允许您从项目目录中选择要部署的文件,方法与.gitignore文件相同。
编辑:我刚刚注意到aws上的文档缺乏。它只提到文件排除,但您也可以包含文件。
编辑2 :我不认为Semaphore支持使用.ebignore,所以现在这个解决方案没有任何用处。 :(
答案 1 :(得分:0)
我刚刚第一次体验https://deploybot.com/。可以直接部署到弹性豆茎上。它可能很有趣或者你。