xdcondor
xdcondor 265 XP
a posé

Erreur dans GitHub Actions : Accès refusé à MySQL avec Laravel

Bonjour mes chers amis,

J'espère que vous passez une bonne journée. J'ai un problème que j'aimerais vous soumettre. J'utilise les GitHub Actions pour exécuter mes tests, et j'utilise MySQL comme base de données. Lorsque mon workflow est lancé, je rencontre une erreur :

SQLSTATE[HY000] [1045] Accès refusé pour l'utilisateur 'root'@'172.18.0.1' (mot de passe non spécifié) (Connexion : mysql, SQL : sélectionnez le nom de la table sous le nom, (data_length + index_length) comme taille, table_comment comme commentaire, engine comme moteur, table_collation comme collation à partir de tables_information_schema où tab_le_schema = 'laravel' et table_type dans ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)

Je serais reconnaissant si vous pouviez m'aider à résoudre ce problème. Voici mon fichier YAML :

name: Test
 
on: [push, pull_request]
 
jobs:
run-tests:
runs-on: ubuntu-latest
 
services:
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_database
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3
 
steps:
- uses: actions/checkout@v4
 
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, intl, pdo_mysql
ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
coverage: xdebug
 
- name: Install Composer dependencies
run: composer install --prefer-dist --no-progress --no-suggest --ansi
 
- name: Copy .env.example to .env
run: cp .env.example .env
 
- name: Update .env for MySQL
run: |
sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env
sed -i 's/DB_HOST=.*/DB_HOST=127.0.0.1/' .env
sed -i 's/DB_PORT=.*/DB_PORT=3306/' .env
sed -i 's/DB_DATABASE=.*/DB_DATABASE=test_database/' .env
sed -i 's/DB_USERNAME=.*/DB_USERNAME=root/' .env
sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=root/' .env
 
- name: Wait for MySQL to be ready
run: |
sudo apt-get install -y mysql-client
until mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SHOW DATABASES"; do sleep 1; done
 
- name: Generate application key
run: php artisan key:generate
 
- name: Run database migrations
run: php artisan migrate --env=testing
stevymarlino
a répondu
Meilleure réponse

Bonsoir @xdcondor, dans un premier temps as tu lancé l''exécution de ton gitHub action en local avant ? ensuite personnellement en lieu et place de crée un service mysql tu pourrais passer par sqlite cela te retirerai une autre couche pour tes tests.

name: Test
 
on: [push, pull_request]
 
jobs:
run-tests:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, intl, pdo_mysql
ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
coverage: xdebug
- uses: actions/checkout@v4
- name: Install Composer dependencies
run: composer install --prefer-dist --no-progress --no-suggest --ansi
 
- name: Copy .env.example to .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
 
 
- name: Generate application key
run: php artisan key:generate
 
- name: Run database migrations
run: php artisan migrate --env=testing
xdcondor
xdcondor 265 XP
a répondu

Il faut Se connecter ou Créer un compte pour participer à cette conversation.