Освещение: Как изящно остановить сервер разработки Django, работающий на экземпляре Github Action Instance

Я тестирую некоторые конечные точки API моего приложения Django, запуская Playwright отдельно на машине Ubuntu на моем экземпляре Github Action. Поскольку я также хочу получить покрытие тестов, я запускаю свой сервер следующим образом:

    - name: run backend server
      run: poetry run coverage run ./manage.py runserver --no-reload

В результате запускается один процесс. Теперь, чтобы собрать данные о покрытии, мне нужно изящно остановить мой django-сервер, поскольку принудительное завершение процесса также прервет coverage, а выполнение coverage combine приведет к ошибке.

Я пробовал следующие команды, но все они не смогли остановить сервер

kill -SIGINT $DJANGO_PID
kill -SIGTERM $DJANGO_PI
pkill -f "./manage.py runserver"
python -c "import os; import signal; print(os.kill($DJANGO_PID, signal.SIGTERM))"

Есть ли другой подход, который я могу использовать? Или, может быть, я запускаю сервер не тем способом?

Вернуться на верх