1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- /**
- * This file allows for tests to be skipped.
- * For now conditions are simple.
- * We check if changes in the source with respect to the configured branch are limited to framework files,
- * if that is the case and the current framework isn't one with changed files then we skip it.
- */
- $branch ="2.5";
- function stderr($message)
- {
- fwrite(STDERR, $message . "\n");
- }
- $currentFramework = getenv('FRAMEWORK');
- if ($currentFramework === 'Codeception') {
- stderr('Codeception tests are always executed');
- die();
- }
- $files = [];
- // Workaround for travis #4806
- passthru("git fetch origin $branch:$branch --depth 1", $return);
- if ($return !== 0) {
- stderr("Git fetch failed");
- die($return);
- }
- exec("git diff --name-only $branch --", $files, $return);
- if ($return !== 0) {
- stderr("Git diff failed");
- die($return);
- }
- // Regexes for frameworks:
- $regexes = [
- 'Yii2' => '/.*Yii2.*/',
- 'Lumen' => '/.*(Lumen|LaravelCommon).*/',
- 'Laravel' => '/.*Laravel.*/',
- 'Phalcon' => '/.*Phalcon.*/',
- 'Symfony' => '/.*Symfony.*/',
- 'Yii1' => '/.*Yii1.*/',
- 'ZendExpressive' => '/.*ZendExpressive.*/',
- 'Zend1' => '/.*ZF1.*/',
- 'Zend2' => '/.*ZF2.*/',
- ];
- // First check if changes include files that are not framework files.
- $frameworkOnly = true;
- $frameworks = [];
- foreach ($files as $file) {
- $match = false;
- foreach ($regexes as $framework => $regex) {
- if (preg_match($regex, $file)) {
- $match = true;
- $frameworks[$framework] = $framework;
- break;
- }
- }
- if (!$match) {
- $frameworkOnly = false;
- break;
- }
- }
- if ($frameworkOnly) {
- stderr('Changes limited to frameworks: ' . implode(', ', $frameworks));
- if (!isset($frameworks[$currentFramework])) {
- stderr("Skipping test for framework: $currentFramework");
- echo "export FRAMEWORK=\n";
- echo "export PECL=\n";
- echo "export FXP=\n";
- echo "export CI_USER_TOKEN=\n";
- }
- }
|