使用Monorepo时,如何让Heroku CI运行测试?

时间:2018-07-20 20:14:19

标签: node.js github heroku monorepo

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

0 个答案:

没有答案