Skip to content
This repository has been archived by the owner on Mar 30, 2018. It is now read-only.

Add support for CI in a Windows x64 environment. #232

Merged
merged 33 commits into from May 12, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
b2b1b99
Add experimental support for CI in a Windows x64 environment.
padraic Apr 23, 2017
8d19bc8
Move composer --no-interaction to env variable (causes error for some…
padraic Apr 23, 2017
5241f09
Add blank line at eof
padraic Apr 23, 2017
70579ec
Make composer executable test case insensitive (fixes composer.bat vs…
padraic Apr 23, 2017
aa5a432
Backslashes...this is WINDOWS!
padraic Apr 23, 2017
6d4e5e3
Merge branch 'ci/appveyor' into ci/appveyor-fixes
padraic Apr 23, 2017
c4b2883
Check if preceeding php command needed; later check why this works...
padraic Apr 23, 2017
56c9406
Allow case insensitivity in executable location
padraic Apr 23, 2017
88d66ac
Add error output in assertion calls for debugging
padraic Apr 24, 2017
8d79979
Install xdebug via powershell using appropriate versions
padraic Apr 24, 2017
d31f302
Work from c:\tools\php, and initiate web client
padraic Apr 24, 2017
bf75d60
Excl. 5.6
padraic Apr 24, 2017
aab1904
Make VC explicit
padraic Apr 24, 2017
9035df0
Use preset php target version
padraic Apr 24, 2017
8c87549
Squashed commit of the following:
padraic Apr 24, 2017
e1778af
Merge branch 'ci/appveyor-fixes' into ci/appveyor
padraic Apr 24, 2017
f196cc5
Remove non-existing variable
padraic Apr 24, 2017
69e49d9
Check xdebug paths
padraic Apr 24, 2017
8127665
Trigger build
padraic Apr 25, 2017
b0780b1
Trigger build
padraic Apr 25, 2017
6ec78c3
Trigger build
padraic Apr 25, 2017
6fcb95b
Disable composer --prefer-lowest for now. There is one failure killin…
padraic Apr 25, 2017
b420de0
Hopefully, skip repeatedly installing xdebug (not a fatal error, but …
padraic May 1, 2017
0733618
Trigger build
padraic May 1, 2017
5b5ce71
Trigger build
padraic May 1, 2017
7c3488f
Update cache file ref (we don't use dot-prefix)
padraic May 1, 2017
3e9646a
Add behat!
padraic May 1, 2017
4f83d89
Disable behat - colour codes need updating for Windows PS
padraic May 1, 2017
00fc873
Remove PHP command invoking phpunit script (applies to Powershell * B…
padraic May 5, 2017
de026ba
Merge branch 'master' into ci/appveyor
padraic May 5, 2017
edb7886
Merge branch 'hotfix/phpunitexec' into ci/appveyor
padraic May 5, 2017
ee463cf
Merge branch 'master' into ci/appveyor
padraic May 12, 2017
43d7e10
Enable Windows update service
padraic May 12, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
67 changes: 67 additions & 0 deletions appveyor.yml
@@ -0,0 +1,67 @@
build: false
platform:
- x64
clone_folder: c:\projects\workspace

environment:
matrix:
#- dependencies: lowest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a comment linked to an issue or something here. Otherwise it's just a commented code/config we don't know if it can be removed or will be enabled later or something

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done with #235

# php_ver_target: 7.0
- dependencies: highest
php_ver_target: 7.0
#- dependencies: lowest
# php_ver_target: 7.1
- dependencies: highest
php_ver_target: 7.1

cache: # cache is cleared when linked file is modified
- '%LOCALAPPDATA%\Composer\files -> composer.lock'
- composer.phar
- C:\ProgramData\chocolatey\bin -> appveyor.yml
- C:\ProgramData\chocolatey\lib -> appveyor.yml
- c:\tools\php -> appveyor.yml

init:
- SET PATH=C:\Program Files\OpenSSL;c:\tools\php;%PATH%
- SET PHP=1
- SET ANSICON=121x90 (121x90)
- SET COMPOSER_NO_INTERACTION=1
- SET XDEBUG_VERSION=2.5.3 # As of 24 April 2017 - UPDATE REGULARLY

install:
- IF EXIST c:\tools\php (SET PHP=0)
# Enable Windows update service
- ps: Set-Service wuauserv -StartupType Manual
# Install PHP
- ps: appveyor-retry cinst --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
- cd c:\tools\php
- IF %PHP%==1 copy php.ini-production php.ini /Y
- IF %PHP%==1 echo date.timezone="UTC" >> php.ini
- IF %PHP%==1 echo extension_dir=ext >> php.ini
- IF %PHP%==1 echo extension=php_openssl.dll >> php.ini
- IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini
- IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
# Install xdebug
- ps: |
if (Test-Path "c:\tools\php\ext\xdebug.dll") {return}
$client = New-Object System.Net.WebClient
$xdebugUrl = "https://xdebug.org/files/php_xdebug-$env:XDEBUG_VERSION-$env:php_ver_target-vc14-nts-x86_64.dll"
$xdebugPath = 'c:\tools\php\ext\xdebug.dll'
Write-Output "Downloading $xdebugUrl"
Write-Output "to $xdebugPath"
$client.DownloadFile($xdebugUrl, $xdebugPath)
Add-Content php.ini @"
zend_extension=$xdebugPath
"@
# Install composer and update per matrix
- appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar
- cd c:\projects\workspace
- IF %dependencies%==lowest appveyor-retry composer update --no-suggest --prefer-dist --prefer-lowest
- IF %dependencies%==highest appveyor-retry composer update --no-suggest --prefer-dist
- composer show


test_script:
- cd c:\projects\workspace
- vendor\bin\phpunit -c phpunit.xml.dist
#- vendor\bin\behat -vv -f progress
11 changes: 3 additions & 8 deletions src/Adapter/Phpunit/Process/PhpunitExecutableFinder.php
Expand Up @@ -17,7 +17,6 @@
use Humbug\Config\JsonParser;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\ExecutableFinder;
use Symfony\Component\Process\PhpExecutableFinder;

class PhpunitExecutableFinder extends AbstractExecutableFinder
{
Expand Down Expand Up @@ -100,15 +99,11 @@ private function findPhpunit()
protected function makeExecutable($path)
{
$path = realpath($path);
$phpFinder = new PhpExecutableFinder();
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
return sprintf('%s %s %s', 'exec', $phpFinder->find(), $path);
} else {
if (false !== strpos($path, '.bat')) {
return $path;
}
return sprintf('%s %s', $phpFinder->find(), $path);
return sprintf('%s %s', 'exec', $path);

}
return $path;
}

private function setConfig()
Expand Down
Expand Up @@ -18,6 +18,6 @@ public function testFinderCanLocatePhpunitExecutable()
{
$finder = new PhpunitExecutableFinder();
$result = $finder->find();
$this->assertRegExp('%phpunit.*(\\.bat|\\.phar)?$%', $result);
$this->assertRegExp('%phpunit.*(\\.bat|\\.phar)?$%i', $result);
}
}
14 changes: 7 additions & 7 deletions tests/Adapter/PhpunitTest.php
Expand Up @@ -88,7 +88,7 @@ public function testAdapterRunsDefaultPhpunitCommand()

$result = $process->getOutput();

$this->assertStringStartsWith('TAP version', $result);
$this->assertStringStartsWith('TAP version', $result, $process->getErrorOutput());
$this->assertTrue($adapter->ok($result));
}

Expand Down Expand Up @@ -116,7 +116,7 @@ public function testAdapterRunsPhpunitCommandWithAlltestsFileTarget()

$result = $process->getOutput();

$this->assertStringStartsWith('TAP version', $result);
$this->assertStringStartsWith('TAP version', $result, $process->getErrorOutput());
$this->assertTrue($adapter->ok($result));
}

Expand Down Expand Up @@ -144,7 +144,7 @@ public function testAdapterDetectsTestsPassing()

$result = $process->getOutput();

$this->assertTrue($adapter->ok($result));
$this->assertTrue($adapter->ok($result), $process->getErrorOutput());
}

public function testAdapterDetectsTestsFailingFromTestFail()
Expand All @@ -171,7 +171,7 @@ public function testAdapterDetectsTestsFailingFromTestFail()

$result = $process->getOutput();

$this->assertFalse($adapter->ok($result));
$this->assertFalse($adapter->ok($result), $process->getErrorOutput());
}

public function testAdapterDetectsTestsFailingFromException()
Expand All @@ -198,7 +198,7 @@ public function testAdapterDetectsTestsFailingFromException()

$result = $process->getOutput();

$this->assertFalse($adapter->ok($result));
$this->assertFalse($adapter->ok($result), $process->getErrorOutput());
}

public function testAdapterDetectsTestsFailingFromError()
Expand All @@ -225,7 +225,7 @@ public function testAdapterDetectsTestsFailingFromError()

$result = $process->getOutput();

$this->assertFalse($adapter->ok($result));
$this->assertFalse($adapter->ok($result), $process->getErrorOutput());
}

public function testAdapterOutputProcessingDetectsFailOverMultipleLinesWithNoDepOnFinalStatusReport()
Expand Down Expand Up @@ -272,7 +272,7 @@ public function testShouldNotNotifyRegressionWhileRunningProcess($directory)

$result = $process->getOutput();

$this->assertEquals(2, $adapter->hasOks($result));
$this->assertEquals(2, $adapter->hasOks($result), $process->getErrorOutput());
$this->assertStringStartsWith('TAP version', $result);
$this->assertTrue($adapter->ok($result), "Regression output: \n" . $result);
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Process/ComposerExecutableFinderTest.php
Expand Up @@ -18,6 +18,6 @@ public function testFinderCanLocatePhpunitExecutable()
{
$finder = new ComposerExecutableFinder();
$result = $finder->find();
$this->assertRegExp('%composer(\\.bat|\\.phar)?$%', $result);
$this->assertRegExp('%composer(\\.bat|\\.phar)?$%i', $result);
}
}