Skip to content

Instantly share code, notes, and snippets.

@gilbitron
Last active August 12, 2023 08:06
Show Gist options
  • Save gilbitron/5cac0ac5fa07e9b354ac to your computer and use it in GitHub Desktop.
Save gilbitron/5cac0ac5fa07e9b354ac to your computer and use it in GitHub Desktop.
Laravel 5 Travis CI config
APP_ENV=testing
APP_KEY=SomeRandomString
DB_CONNECTION=testing
DB_TEST_USERNAME=root
DB_TEST_PASSWORD=
CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=sync
language: php
php:
- 5.6
before_script:
- cp .env.travis .env
- mysql -e 'create database homestead_test;'
- composer self-update
- composer install --no-interaction
script:
- vendor/bin/phpunit
<?php
return [
//...
'default' => env('DB_CONNECTION', 'mysql'),
//...
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'testing' => [
'driver' => 'mysql',
'host' => env('DB_TEST_HOST', 'localhost'),
'database' => env('DB_TEST_DATABASE', 'homestead_test'),
'username' => env('DB_TEST_USERNAME', 'homestead'),
'password' => env('DB_TEST_PASSWORD', 'secret'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
//...
];
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">app/</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
</phpunit>
@noobling
Copy link

noobling commented Apr 1, 2018

@isneezy Why do you have db stuff in env you are using in memory db theres no need?

@andreshg112
Copy link

Thank you very much!

I had to make some changes to make it work:

language: php

php:
  - 7.2.1

addons:
  mariadb: '10.1'

before_script:
  - cp .env.travis .env
  - mysql -e 'create database homestead_test;'
  - composer self-update
  - composer install --no-interaction
  - rm vendor/nzesalem/lastus/src/migrations/2017_10_18_124315_add_status_field_to_users_table.php
  - php artisan key:generate
  - php artisan migrate --step

script:
  - vendor/bin/phpunit

@DubStepMad
Copy link

DubStepMad commented Aug 7, 2019

Has anyone been able to get this to work with Laravel 5.8?

I keep getting this error:

$ mysql -e 'create database homestead_test;'
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
The command "mysql -e 'create database homestead_test;'" failed and exited with 1 during .

@freddy-chan
Copy link

@DubStepMad I add

services:
- mysql

This is my complete script:

language: php
dist: bionic

php:
- 7.3

services:
  - mysql

before_script:
- cp .env.travis .env
- mysql -e 'create database homestead_test;'
- composer self-update
- composer install --no-interaction
- php artisan key:generate
- php artisan migrate

script:
- vendor/bin/phpunit

@nahimanajz
Copy link

I'm using SQLite as service may you show me how my .travis.yml should look like ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment