Gitea 上有两个 repo ,一个存储的前端 React 的代码,另外一个是后端 SpringBoot 的代码。
在本机的构建步骤如下:
- 先编译前端项目,产物输出到 dist 文件夹
- 复制 dist 文件夹到后端目录,后端执行 ./gradlew bootjar 生成 jar 包
- 根据生成的 jar 包构建 Docker 镜像
目前遇到的问题主要是,drone 的收到的 gitea 的 webhook 事件是针对单个 repo 的,比如我 push 到前端的 repo 。此时会触发前端的构建。
由于我不想把两个项目放在一个 repo ,那对于这种存在依赖的项目构建,该如何处理?
我目前想到的解决方案:
- 将构建流程控制脚本单独放一个 repo 管理。
- 在前端和后端 repo 中各放置一个 drone.yml,收到 push 事件后,运行构建任务,在 shell 中执行 drone 的 cli,触发一个构建流程控制脚本 repo 的 build 。
- 然后在这个新的构建流程控制 repo 中,clone 前后端的项目,控制其构建顺序,生成最终的产物。
我觉得我的解决方案,有点多此一举的感觉,但又苦于没有更佳的方法。