Привет! У меня есть монорепозиторий с папками frontend и backend. Я настроил GitHub Actions, чтобы при пуше в ветку main сначала билдилась папка frontend, а затем — папка backend. Проблема в том, что при сборке фронтенда папка с бэкендом на сервере сбрасывается, в том числе теряются установленные зависимости и папка node_modules, что приводит к ошибкам при запуске бэкенда.
name: "Build Frontend"
on:
push:
branches:
- main
jobs:
build-frontend:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20.18.0'
- name: Install frontend dependencies
run: npm ci
working-directory: frontend
- name: Build frontend
run: npm run build
working-directory: frontend
- name: Install backend dependencies
run: npm ci
working-directory: backend
- name: Restart pm2
run: pm2 restart 0 && pm2 restart 1
Проблема возникает при выполнении шагов сборки фронтенда, когда папка backend сбрасывается и теряет свои зависимости, в том числе node_modules. В результате не удается запустить бэкенд. Как можно решить эту проблему, чтобы файлы не сбрасывались при сборке фронтенда и бэкенд корректно запускался после этого?
Что я пытался сделать:
Я настроил workflow в GitHub Actions, чтобы сначала билдилась папка с фронтендом, а затем с бэкендом в монорепозитории. Ожидал, что после сборки фронтенда, сборка бэкенда будет выполнена корректно, с установкой зависимостей как для фронтенда, так и для бэкенда. После этого планировал перезапустить PM2 для обоих сервисов.
Что я ожидал:
Ожидал, что фронтенд соберется без проблем, и затем бэкенд будет собран и запущен корректно, с сохранением всех зависимостей и успешным перезапуском PM2 для обоих сервисов.
Что получилось на самом деле:
Фронтенд собирается успешно, но в процессе папка с бэкендом перезаписывается, и теряются зависимости, включая папку node_modules. В результате бэкенд не запускается после сборки фронтенда, так как необходимые зависимости отсутствуют.