Bonjour,
Cela fait quelques temps que je tourne en rond. J'espere ne pas m'être trompé de forum d'ailleurs...
J'ai suivi l'excellente vidéo de Grafikart qui parle de l'intégration continue : https://www.grafikart.fr/tutoriels/divers/gitlab-ci-docker-808
Mais j'ai un message d'erreur lorsque le Seed se lance sur Gitlab
Voici mon fichier .gitlab-ci.yml
image: grafikart/gitlab-ci:php7
before_script:
- composer install > /dev/null
services:
- mysql
variables:
MYSQL_DATABASE: cactus
MYSQL_ROOT_PASSWORD: cactus
test:
script:
- cp .env.testing .env
- php artisan migrate --seed
Et voici l'erreur qui est affichée sur Gitlab, lorsqu'il arrive à l'étape du seed :
$ cp .env.testing .env
$ php artisan migrate --seed
[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, r
eport to the developers (SQL: select * from information_schema.tables where
table_schema = cactus and table_name = migrations)
[PDOException]
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, r
eport to the developers
[PDOException]
PDO::__construct(): Server sent charset (255) unknown to the client. Please
, report to the developers
Dans mon fichier .env.testing, j'ai la configuration suivante :
APP_NAME=Cactus
APP_ENV=testing
APP_DEBUG=true
APP_LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=cactus
DB_USERNAME=root
DB_PASSWORD=cactus
J'ai l'impression que c'est un problème de charset, et j'ai essayé plusieurs modifs dans ce sens, en changeant le charset de ma configuration (Config/database.php) :
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
J'ai essayé plusieurs charset, sans succès...
De ce que je lis dans les forums anglophones, ca viendrait d'un problème de compatibilité entre php et mysql, mais là je suis un peu perdu.
Quelqu'un pourrait m'aider la-dessus ?
Merci de m'avoir lu et excellente journée
Bonjour,
Je n'est pas eu de soucis comme celui ci mais le fichier ci-dessous fonctionne bien pour les pipelines :
image: stanislasp/laravel-5-php-7.2:1.0
services:
- mysql:5.7
variables:
WITH_XDEBUG: "1"
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: HERE_SOME_DATA
MYSQL_USER: HERE_SOME_DATA
MYSQL_PASSWORD: HERE_SOME_DATA
stages:
- build
- test
build:
stage: build
script:
- composer install --no-progress --no-interaction
- npm install --ignore-engines
- cp .env.test .env
- php artisan key:generate
- npm run dev
- tar -czf build.tar.gz .env public/ node_modules/ vendor/
artifacts:
paths:
- build.tar.gz
expire_in: 20 minutes
fixer-cs:
stage: test
image: stanislasp/laravel-5-php-7.2:1.0
script:
- tar -xvzf build.tar.gz -C ./
- php artisan migrate --seed
- php artisan fixer:fix --no-interaction --dry-run --diff --using-cache=no
phpunit:
stage: test
image: stanislasp/laravel-5-php-7.2:1.0
script:
- tar -xvzf build.tar.gz -C ./
- php artisan migrate --seed
- php vendor/bin/phpunit --colors --coverage-text
artifacts:
when: on_failure
name: "${CI_BUILD_STAGE}_${CI_BUILD_REF_NAME}_FAILED"
paths:
- '.'
untracked: false
expire_in: 1 day
En espérant que cela te débloque
Bonjour et merci pour ton partage.
Je l'ai essayé, avec la version suivante:
image: stanislasp/laravel-5-php-7.2:1.0
services:
- mysql:5.7
variables:
WITH_XDEBUG: "1"
MYSQL_ROOT_PASSWORD: cactus
MYSQL_DATABASE: cactus
MYSQL_USER: root
MYSQL_PASSWORD: cactus
stages:
- build
- test
build:
stage: build
script:
- composer install --no-progress --no-interaction
- cp .env.testing .env
- php artisan key:generate
phpunit:
stage: test
image: stanislasp/laravel-5-php-7.2:1.0
script:
- php artisan migrate --seed
- php vendor/bin/phpunit --colors --coverage-text
Le message suivant m'est retourné, lorsqu'il fait le test de PhpUnit. saurais-tu vers quelle piste chercher ?
Pulling docker image stanislasp/laravel-5-php-7.2:1.0 ...
Using docker image sha256:630bf30598c872649acdf573c3c52bf42c1936e9f75af55d95afc6297b6656a5 for stanislasp/laravel-5-php-7.2:1.0 ...
Running on runner-e11ae361-project-5426827-concurrent-0 via runner-e11ae361-srm-1528496844-b559d54f...
Cloning repository...
Cloning into '/builds/julien.brault/cactus3'...
Checking out 44f52b64 as monbatiment_controller...
Skipping Git submodules setup
$ php artisan migrate --seed
ERROR: Job failed: exit code 1
Merci
Salut. Désolé du retard :(
Dans le fichier que je t'est apsser. j'utilise une méthode d'artifact qui permet d'avoir un zip du projet a la fin de la tâche. Ca permet de récupérer ainsi les logs et de pouvoir les analyser.
Concernant le soucis au seed je dirais que ton .env.testing n'as pas les même parametre de connexion mysql que les infos donner dans le gitlab-ci. Si le soucis viens d'ailleur. je serai ravis de t'aider plus mais il faudras plus d'infos :) (tu peux me retrouver dans le discord, je suis presque toujours connecter et dans le coin ;) )