Тест Django завершается неудачей на github-actions, работает локально

Я столкнулся с проблемой. Я следую руководству и написал команду wait for db в моем проекте на django, чтобы дождаться, пока будет доступна база данных, а затем запустить свои тесты. Команда приведена ниже:

docker compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test"

Когда я запускаю эту команду на своем терминале, она выполняется нормально.

Однако, у меня есть действие на github при запуске этой команды, как только мой код загружается, я получаю сообщение об ошибке, когда это происходит, и я не могу понять журнал. Ниже приведен yml-файл для github action:

---
name: Checks
 
on: [push]
 
jobs:
  test-lint:
    name: Test and Lint
    runs-on: ubuntu-24.04
    steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USER }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Checkout
        uses: actions/checkout@v4
      - name: Test
        run: docker compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test"
      - name: Lint
        run: docker compose run --rm app sh -c "flake8"

Хотя большая часть лога указывает на успех, я не могу определить ошибку, вероятно, она только в последней строке. Полное сообщение об ошибке гласит следующее:

Пожалуйста, помогите мне, я новичок в этом деле и сталкиваюсь с проблемами. При необходимости я могу предоставить дополнительную информацию.

Я попытался заменить команду дефисом, например, docker-compose и запустить ее снова, но она выдала ошибку неизвестной команды

Эта ошибка сегментации, скорее всего, связана с проблемой памяти. Это может произойти из-за того, что на вашем локальном компьютере больше ресурсов, чем у программы GitHub Actions runner. Попробуйте установить ограничения на ресурсы в вашем файле docker-compose.yml, например, для github action:

services:
  db:
    ...
    deploy:
      resources:
        limits:
          memory: 512M
Вернуться на верх