A Continuous Integration Service & Dashboard Package
- Project List: click a project link to see all its tests.
- Checkboxes to enable/disable a test. Once disabled if the watcher catches a change in resources, that test will not fire.
- "Run" button, to manually fire a test.
- Test 'last run' time.
- Current Test "State": tests states are "running", "queued", "ok" and "failed".
- "Show" button, to display the error log of failed tests.
The Artisan commands Watcher and Tester are responsible for watching resources and firing tests, respectively:
Keep track of your files and enqueue your tests every time a project or test file is changed. If a project file changes, it will enqueue all your tests, if a test file changes, it will enqueue only that particular test. This is how you run it:
php artisan ci:watch
Responsible for taking tests from the run queue, execute it and log the results. Tester will only execute enabled tests. This is how you run it:
php artisan ci:test
This package was tested and is known to be compatible with
Require it with Composer:
$ composer require pragmarx/ci
Add the service provider to your app/config/app.php:
Create a database, configure on your Laravel app and migrate it
php artisan migrate --package=pragmarx/ci
Publish Ci configuration:
On Laravel 4.*
php artisan config:publish pragmarx/ci
On Laravel 5.*
php artisan vendor:publish --provider="PragmaRX\Ci\Vendor\Laravel\ServiceProvider"
Edit the file
app/config/packages/pragmarx/ci/config.php add your testers:
'testers' => [ 'codeception' => [ 'command' => 'sh %project_path%/vendor/bin/codecept run', ], 'phpunit' => [ 'command' => 'phpunit', ], ],
Also your projects and test suites:
'projects' => [ 'myproject' => [ 'path' => '/var/www/myproject.dev', 'watch_folders' => ['app', 'tests'], 'exclude' => [ 'folder' => 'tests/_output', 'file' => 'tests/database.sqlite', ], 'tests_path' => 'tests', 'suites' => [ 'functional' => [ 'tester' => 'codeception', 'tests_path' => 'functional', 'command_options' => 'functional', 'file_mask' => '*Cept.php', 'retries' => 3, ] ], ], ],
For the Dashboard you just need to create a route and add render this view:
- Laravel 4.1+ or 5
- PHP 5.3.7+
Laravel Ci is licensed under the BSD 3-Clause License - see the
LICENSE file for details
Pull requests and issues are welcome.