我知道您可以自动从github部署到heroku,但是我还没有找到一种仅将子文件夹从github推送到heroku的方法。
在命令行中,我知道可以使用以下方法执行此操作:
git subtree push --prefix <subfolder> heroku master
但是,我想知道是否有一种方法可以将github集成与heroku结合使用,以在将提交添加到分支时自动拉特定的子文件夹。
最佳答案
2018更新! 要使用heroku启用自动部署,您需要对要部署的github存储库具有管理员访问权限。
在Heroku仪表板中:
步骤1)-将github存储库连接到Heroku
在“部署”选项卡中,滚动到“部署方法”并连接您的Github帐户。找到仓库并点击连接。现在应该在您的github中将heroku授权为Oauth应用。
如果找不到存储库:您的github未授权Heroku或您未创建此存储库,需要确保您具有对该存储库的管理员访问权限。如果无法做到这一点,请通过访问Heroku信息中心中的“访问”选项卡并将管理员添加为协作者来邀请回购的管理员加入您的heroku应用。然后,管理员登录到heroku并在此处完成步骤1。之后,您可以完成以下步骤。
步骤2)-将Heroku Config Var PROJECT_PATH设置到您的服务器文件夹
在“设置”选项卡中,设置一个配置变量,以告知Heroku查找要部署的服务器代码的路径。
示例:可以说您的仓库名称是MyRepo,它有2个子文件夹。 back-end
包含一个Node.js服务器,而front-end
包含一个React应用。您的github目录如下所示:MyRepo/front-end/package.jsonMyRepo/back-end/package.json
然后,应在左侧框中将config var设置为PROJECT_PATH
,在右侧框中将back-end
设置为。
步骤3)-设置一个Heroku Buildpack,它将部署PROJECT_PATH文件夹
再次在“设置”选项卡中,您需要添加一个Buildpack,它将告诉heroku查找您的文件夹,而不是部署回购根目录。那里应该已经有1个buildpack来告诉heroku它是什么类型的服务器(javascript / node.js,python / django等)。
输入此URL以添加buildpack https://github.com/timanovsky/subdir-heroku-buildpack.git和,确保它在Buildpack链的顶部(拖动左侧的行使其位于您添加的任何其他buildpack之上。
步骤4)-启用自动部署
在“部署”选项卡中,滚动到“自动部署”,然后单击黑色按钮以启用自动部署
自动部署完成!现在检查构建日志并确保您没有任何错误