language: php services: - mysql sudo: true # Prevent tests from taking more than 50 minutes group: deprecated-2017Q4 php: - 7.2 addons: hosts: - www.ninja.test cache: directories: - vendor - $HOME/.composer/cache env: global: - COMPOSER_DISCARD_CHANGES=true - COMPOSER_NO_INTERACTION=1 - COMPOSER_DISABLE_XDEBUG_WARN=1 before_install: # set GitHub token and update composer - if [ -n "$GH_TOKEN" ]; then composer config github-oauth.github.com ${GH_TOKEN}; fi; - composer self-update && composer -V # - export USE_ZEND_ALLOC=0 - rvm use 1.9.3 --install --fuzzy install: # install Composer dependencies # - rm composer.lock # these providers require referencing git commit's which cause Travis to fail # - sed -i '/mollie/d' composer.json # - sed -i '/2checkout/d' composer.json - travis_retry composer install --prefer-dist; before_script: # prevent MySQL went away error - mysql -u root -e 'SET @@GLOBAL.wait_timeout=28800;' # copy configuration files - cp .env.travis .env - cp tests/_bootstrap.php.default tests/_bootstrap.php - php artisan key:generate --no-interaction - sed -i '$a NINJA_DEV=true' .env # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja0;" - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "create database IF NOT EXISTS ninja2;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja0.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja2.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" # migrate and seed the database - php artisan migrate --database=db-ninja-0 --seed --no-interaction - php artisan migrate --database=db-ninja-1 --seed --no-interaction - php artisan migrate --database=db-ninja-2 --seed --no-interaction # Start webserver on ninja.test:8000 - php artisan serve --host=www.ninja.test --port=8000 & # '&' allows to run in background # Start PhantomJS - phantomjs --webdriver=4444 & # '&' allows to run in background # Give it some time to start - sleep 5 # Make sure the app is up-to-date - curl -L http://www.ninja.test:8000/update - php artisan ninja:create-test-data 4 true - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed - sed -i 's/DB_TYPE=db-ninja-1/DB_TYPE=db-ninja-2/g' .env - sed -i 's/user@example.com/user2@example.com/g' .env - sed -i 's/permissions@example.com/permissions2@example.com/g' .env - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed script: - php ./vendor/codeception/codeception/codecept run --debug acceptance APICest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance TaxRatesCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance CheckBalanceCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance ClientCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance ExpenseCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance CreditCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance InvoiceCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance QuoteCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance InvoiceDesignCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance OnlinePaymentCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance PaymentCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance TaskCest.php - php ./vendor/codeception/codeception/codecept run --debug acceptance AllPagesCept.php - php ./vendor/codeception/codeception/codecept run --debug functional PermissionsCest.php #- sed -i 's/NINJA_DEV=true/NINJA_PROD=true/g' .env #- php ./vendor/codeception/codeception/codecept run --debug run acceptance GoProCest.php #- php ./vendor/codeception/codeception/codecept run --debug acceptance GatewayFeesCest.php #- php ./vendor/codeception/codeception/codecept run --debug acceptance DiscountCest.php after_script: - php artisan ninja:check-data --no-interaction --database='db-ninja-1' - php artisan ninja:check-data --no-interaction --database='db-ninja-2' - php artisan ninja:init-lookup --validate=true --database='db-ninja-1' - php artisan ninja:init-lookup --validate=true --database='db-ninja-2' - cat storage/logs/laravel-error.log - cat storage/logs/laravel-info.log - cat .env - mysql -u root -e 'select * from lookup_companies;' ninja0 - mysql -u root -e 'select * from lookup_accounts;' ninja0 - mysql -u root -e 'select * from lookup_contacts;' ninja0 - mysql -u root -e 'select * from lookup_invitations;' ninja0 - mysql -u root -e 'select * from accounts;' ninja - mysql -u root -e 'select * from users;' ninja - mysql -u root -e 'select * from lookup_users;' ninja - mysql -u root -e 'select * from account_gateways;' ninja - mysql -u root -e 'select * from clients;' ninja - mysql -u root -e 'select * from contacts;' ninja - mysql -u root -e 'select id, public_id, account_id, invoice_number, amount, balance from invoices;' ninja - mysql -u root -e 'select * from invoice_items;' ninja - mysql -u root -e 'select * from invitations;' ninja - mysql -u root -e 'select id, public_id, account_id, invoice_id, amount, transaction_reference from payments;' ninja - mysql -u root -e 'select * from credits;' ninja - mysql -u root -e 'select * from expenses;' ninja - mysql -u root -e 'select * from accounts;' ninja - mysql -u root -e 'select * from fonts;' ninja - mysql -u root -e 'select * from banks;' ninja - mysql -u root -e 'select * from account_gateway_tokens;' ninja - mysql -u root -e 'select * from payment_methods;' ninja - FILES=$(find tests/_output -type f -name '*.png' | sort -nr) - for i in $FILES; do echo $i; base64 "$i"; break; done notifications: email: on_success: never on_failure: change slack: invoiceninja: SLraaKBDvjeRuRtY9o3Yvp1b