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

xdcondor @xdcondor 265 XP a posé dans

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
  • Réponse acceptée

    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

Veuillez vous connecter ou créer un compte pour participer à cette conversation.