我在monorepo项目的名为node-server
的子目录中有一个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并在子目录中执行测试吗?