我正在使用节点程序包为我的项目运行Web服务器(还有其他好处)。 问题是,如果我的项目位于节点包的目录中,则仅将其加载到服务器上。 换句话说,我的目录结构如下所示:
<npm_pkg>/
<npm_pkg_src>/
clients/
<my_project_name>/
<my_project_src>
我希望能够对我的项目使用标准的部署过程(例如gcloud app deploy
,Travis连续部署等),但是我需要从较大包的子目录中运行我的项目。 有没有一种简单的方法可以在构建步骤中强制git clone <pkg>
并将我的项目部署到目标子目录中?
我对CI / CD还是很陌生,但是我尝试搜索类似的示例,但找不到任何示例。 注意:父项目不是我所有的,因此我不能不分叉就使用子模块(并且我无意以任何方式对其进行更改)。 我还严格只希望能够在可能的情况下基于实际项目的存储库触发部署,而子模块将涉及维护两次并提交两次功能(据我了解)。
任何帮助深表感谢。
编辑:我忘了提到,作为此配置的一部分,我还需要从父程序包的根目录运行服务器脚本。 哎呀,我的package.json
的启动脚本看起来像"start": "cd ../.. && npm start"
。 以防万一它是相关的。
这可能是您要寻找的: 带有App Engine的CI / CD
从存储库克隆并从其所在的子目录进行部署, Cloud Source Repository可以为您自动化整个过程
我还建议您将服务分开,这样可以使您和其他可能/可能与您一起进行项目工作的人更清楚