5

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 并在子目录中执行测试?

4

0 回答 0