Запуск тестов на Docker-контейнере Heroku с помощью GitHub Actions

Я успешно развертываю на Heroku докеризованное приложение Django с помощью GitHub Actions. Мой рабочий процесс GitHub Actions:

name: Deploy to heroku.

on:
    push:
        branches: [poet]

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            # Check-out your repository.
            - name: Checkout
              uses: actions/checkout@v2

            # Build and deploy
            - name: Build, push, and release Docker to Heroku.
              uses: gonuit/heroku-docker-deploy@v1.3.3
              with:
                  email: <email>
                  heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
                  heroku_app_name: <app>
                  dockerfile_directory: ./image/app/
                  dockerfile_name: Dockerfile
                  docker_options: "--no-cache --target prod"
                  process_type: web
            - name: Test
              run: python manage.py test # this doesn't work

Прежде всего, я хотел бы подтвердить, что шаг тестирования должен быть чем-то вроде того, что я показал выше (name: Test). Другими словами, тестирование должно быть еще одним шагом в задании сборки? Или это должно быть отдельное задание? Выполнение этой команды в качестве шага в том же задании приводит к ошибке python: can't open file 'manage.py'.

В качестве альтернативы, если бы я хотел сделать его собственной работой, я полагаю, что мне следует попробовать heroku ps:exec. Однако для взаимодействия с контейнером Docker в Heroku, очевидно, требуется много модификаций, и я пока не уверен, что это правильный путь. Если я попытаюсь запустить консоль в Heroku и в подсказке heroku run введу python manage.py test, она просто перезапустит dyno / запустит новый dyno и не выдаст никаких результатов относительно теста.

Третьим вариантом является включение python manage.py test в мой файл entrypoint.sh, который запускается в конце моего Dockerfile. Но и это, похоже, не дает никакого результата.

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