我在一个名为node-server
monorepo项目的子目录中有一个nodejs应用程序。
当我直接进行如下所示的推送时,我能够利用heroku-buildpack-monorepo项目来仅将节点服务器目录部署到Heroku:
git push heroku master
这将运行monorepo buildpack,它将子文件夹复制到暂存目录,清除整个根结构,然后用暂存目录的内容替换根目录。然后继续自动检测我的nodejs buildpack,一切正常。
但是现在,我正在尝试设置Heroku CI,以便在我直接提交到Github时自动检测并运行测试并暂存我的应用程序:
git push origin mybranch
我已经按如下所示设置了app.json文件:
{ "environments": { "test": { "buildpacks": [ { "url": "https://github.com/lstoll/heroku-buildpack-monorepo" }, { "url": "https://github.com/heroku/heroku-buildpack-nodejs" } ], "env": { "APP_BASE": "node-server" } } } }
问题在于,Heroku在暂存测试执行代码时会设置一个只读文件系统,从而使monorepo buildpack无法使用:
-----> Fetching https://github.com/heroku/heroku-buildpack-nodejs buildpack... buildpack downloaded -----> Monorepo app detected rm: cannot remove '/app': Read-only file system FAILED to copy directory into place
还有其他方法可以使Heroku CI与monorepo配合使用,以便它可以检测buildpack并在子目录中执行测试吗?