Запуск тестов на 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. Но и это, похоже, не дает никакого результата.