webbuilders-group / silverstripe-recipe-github-ci
Silverstripe Recipe for Bootstrapping a Project using GitHub Actions as a CI
Installs: 196
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 0
Type:silverstripe-recipe
Requires
- phpunit/phpunit: ^5.7
- silverleague/ideannotator: ~3.0
- silverstripe/behat-extension: ~4.1
- silverstripe/recipe-cms: ~4.4
- silverstripe/recipe-plugin: ^1.0
- silverstripe/serve: ~2.1
- squizlabs/php_codesniffer: ~3.4
This package is auto-updated.
Last update: 2024-10-25 22:09:02 UTC
README
Silverstripe Recipe for Bootstrapping a Project using GitHub Actions as a CI, for details on included/expanded features see the docs.
Maintainer Contact
- Ed Chipman (UndefinedOffset)
Requirements
- SilverStripe Framework 4.4+
Installation
Composer (recommended):
composer require webbuilders-group/silverstripe-recipe-github-ci --dev
Getting Started
This recipe contains support for tests run against PHPUnit and Behat as well as code style validation using PHP_CodeSniffer (using PSR-2 standards). Out of the box this CI expects all site code to be in the app
folder. It also expects all PHPUnit tests to be in app/tests/PHPUnit
, with all Behat tests to be in app/tests/behat/features
.
If you do not need Behat tests you will need to remove the behat
job in .github/workflows/ci.yml
. If you want to disable PHP_CodeSniffer you need to remove the "Validate Code Style" step from the same file.
Failed Tests Artifacts
Artifacts such as an error log from Silverstripe, or screenshots from the Behat tests will be added to the artifacts section on for the action's run on GitHub. For the PHPUnit tests it will be named CI-<run number>-phpunit
, for Behat tests it will be named CI-<run number>-behat
unless you change them.
Testing Locally
Testing locally is still possible though it will of course work differently than the GitHub Actions runner will.
For PHPUnit
To run PHPUnit locally you can use the following to run all tests in the app/tests/PHPUnit
folder. If you want to run a specific test in that folder simply include the full path, so for example app/tests/PHPUnit
might become app/tests/PHPUnit/SomeFolder/SomeTest.php
.
vendor/bin/PHPUnit app/tests/PHPUnit
For Behat
For Behat you either need to have to have your Silverstripe install in a webserver or use silverstripe/serve (included). As well you need to install and have running ChromeDriver in a version that matches your local install of Chrome.
After all of that, you should be able to run the following to run all Behat tests in the app/tests/behat/features
folder. If you want to run a specific test in that folder simply include the full path, so for example app/tests/behat/features
becomes app/tests/behat/features/some-folder/some-scenario.feature
.
vendor/bin/behat @app ./app/tests/behat/features/ --rerun