Тест 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