GitHub Actions не подхватывает тесты Django
Я хочу написать простой GitHub Action, который запускает тесты моего приложения Django при публикации на GitHub. GitHub запускает рабочий процесс при push, но по какой-то причине он не подхватывает ни один из тестов, хотя запуск python ./api/manage.py test
локально работает.
В разделе Run tests
резюме "Работа" показано следующее:
1s
Run python ./api/manage.py test
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
1s
2s
0s
Для справки, моя локальная установка использует docker-compose, с dockerfile для каждого приложения. Приложение Django - это API. Все, что я хочу сделать, это запустить тесты django на push.
Я столкнулся с контейнерами сервисов GitHub, и подумал, что они могут быть необходимы, поскольку django нужно подключение к базе данных postgres для запуска своих тестов.
Я новичок в GitHub Actions, поэтому любое направление будет оценено по достоинству. Моя интуиция подсказывает, что это должно быть проще, чем это, но ниже приведен мой текущий .github/workflows/django.yml
файл:
name: Django CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
tests:
runs-on: ubuntu-latest
container: python:3
services:
# Label used to access the service container
db:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: password
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
# Downloads a copy of the code in your repository before running CI tests
- name: Check out repository code
uses: actions/checkout@v2
# Performs a clean installation of all dependencies
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r api/requirements.txt
- name: Run Tests
run: |
python ./api/manage.py test
env:
# The hostname used to communicate with the PostgreSQL service container
POSTGRES_HOST: postgres
# The default PostgreSQL port
POSTGRES_PORT: 5432