Подключение к mariaDB в действии Github
Я знаю, что есть несколько связанных вопросов, но я не могу заставить это работать.
Я работаю над действием на Github для тестирования моего приложения Django с помощью MariaDB и Selenium перед развертыванием. Пока что я упростил его до простого запуска тестов.
Я проверил свои секреты и знаю, что они верны.
Я пробовал запускать службы как на localhost, так и в контейнере, но ни одна из них не может определить адрес базы данных.
Я пробовал так:
name: Deploy
on:
push:
jobs:
django-tests:
runs-on: ubuntu-latest
services:
db:
env:
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
MYSQL_USER: ${{ secrets.MYSQL_USER }}
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
image: mariadb:11.5
options: >
--health-cmd="healthcheck.sh --connect --innodb_initialized"
ports:
- 3306:3306
selenium:
image: selenium/standalone-chrome
ports:
- 4444:4444
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Debug Hostname Resolution
run: |
ping -c 4 localhost:3306 || echo "Failed to resolve 'db'"
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Django Selenium Tests
env:
SECRET_KEY: ${{ secrets.DJANGO_SECRET }}
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
MYSQL_USER: ${{ secrets.MYSQL_USER }}
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
DATABASE_URL: mysql://${{ secrets.MYSQL_USER }}:${{ secrets.MYSQL_PASSWORD }}@localhost:3306/${{ secrets.MYSQL_DATABASE }}
DISPLAY: ":99.0"
run: |
python manage.py migrate
python manage.py test
а также работает в контейнере python, не раскрывая порты и подключаясь к «db» напрямую (имя сервиса).
Любая помощь будет оценена по достоинству!