Skip to content

Commit

Permalink
👷 Switch to GitHub Actions (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
retlehs authored Dec 13, 2024
1 parent aceb5ad commit 54bbbd6
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 28 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: PHP Tests

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- '8.0'
- '8.1'
- '8.2'
- '8.3'

steps:
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: xdebug

- name: Install dependencies
run: composer install --prefer-dist --no-progress

- name: Install specific PHPUnit version
run: composer require "phpunit/phpunit:^9.6" --dev

- name: Run tests
run: composer test

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
19 changes: 0 additions & 19 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WordPress Core Installer

[![Build Status](https://travis-ci.com/roots/wordpress-core-installer.svg?branch=master)](https://travis-ci.com/roots/wordpress-core-installer)
[![Tests](https://github.com/roots/wordpress-core-installer/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/roots/wordpress-core-installer/actions/workflows/tests.yml)
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[![Packagist](https://img.shields.io/packagist/dt/roots/wordpress-core-installer.svg)](https://packagist.org/packages/roots/wordpress-core-installer)
![GitHub tag](https://img.shields.io/github/tag/roots/wordpress-core-installer.svg)
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
},
"require-dev": {
"composer/composer": "^1.0 || ^2.0",
"phpunit/phpunit": ">=5.7.27"
"phpunit/phpunit": "^9.6"
},
"conflict": {
"composer/installers": "<1.0.6"
Expand Down
26 changes: 22 additions & 4 deletions tests/phpunit/WordPressCoreInstallerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,19 @@ class WordPressCoreInstallerTest extends TestCase
{
public function testSupports()
{
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);

$this->assertTrue($installer->supports('wordpress-core'));
$this->assertFalse($installer->supports('not-wordpress-core'));
}

public function testDefaultInstallDir()
{
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
$package = new Package('johnpbloch/test-package', '1.0.0.0', '1.0.0');

$this->assertEquals('wordpress', $installer->getInstallPath($package));
Expand Down Expand Up @@ -96,7 +100,9 @@ public function testArrayOfInstallDirs()

public function testCorePackageCanDefineInstallDirectory()
{
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
$package = new Package('test/has-default-install-dir', '0.1.0.0', '0.1');
$package->setExtra(array(
'wordpress-install-dir' => 'not-wordpress',
Expand Down Expand Up @@ -128,6 +134,7 @@ public function testTwoPackagesCannotShareDirectory()
'Two packages (test/bazbat and test/foobar) cannot share the same directory!'
);
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
$package1 = new Package('test/foobar', '1.1.1.1', '1.1.1.1');
$package2 = new Package('test/bazbat', '1.1.1.1', '1.1.1.1');
Expand All @@ -139,6 +146,7 @@ public function testTwoPackagesCannotShareDirectory()
public function testTwoPackagesCannotShareDirectoryUnlessWpCoreType()
{
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
$package1 = new Package('johnpbloch/wordpress', '4.9.8', '4.9.8');
$package1->setType('wordpress-core');
Expand All @@ -162,6 +170,7 @@ public function testSensitiveInstallDirectoriesNotAllowed($directory)
true
);
$composer = $this->createComposer();
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
$package = new Package('test/package', '1.1.0.0', '1.1');
$package->setExtra(array( 'wordpress-install-dir' => $directory ));
Expand Down Expand Up @@ -193,7 +202,16 @@ public static function resetInstallPaths()
private function createComposer()
{
$composer = new Composer();
$composer->setConfig(new Config());
$config = new Config();
$composer->setConfig($config);

// Set up DownloadManager with proper Filesystem
$downloadManager = new \Composer\Downloader\DownloadManager(
new \Composer\IO\NullIO(),
false,
new \Composer\Util\Filesystem()
);
$composer->setDownloadManager($downloadManager);

return $composer;
}
Expand Down
20 changes: 17 additions & 3 deletions tests/phpunit/WordPressCorePluginTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
use Composer\Installer\InstallationManager;
use Composer\IO\IOInterface;
use Composer\IO\NullIO;
use Composer\Package\RootPackage;
use Composer\Plugin\PluginInterface;
use Composer\Test\Mock\HttpDownloaderMock;
use Composer\Util\HttpDownloader;
Expand All @@ -38,11 +39,24 @@ class WordPressCorePluginTest extends TestCase
public function testActivate()
{
$composer = new Composer();
$composer->setConfig(new Config());
$nullIO = new NullIO();
$config = new Config();
$composer->setConfig($config);

// Set up root package
$rootPackage = new RootPackage('root/package', '1.0.0', '1.0.0');
$composer->setPackage($rootPackage);

// Set up DownloadManager
$downloadManager = new \Composer\Downloader\DownloadManager(
new NullIO(),
false,
new \Composer\Util\Filesystem()
);
$composer->setDownloadManager($downloadManager);

$nullIO = new NullIO();
$installationManager = $this->getInstallationManager($composer, $nullIO);
$composer->setInstallationManager($installationManager);
$composer->setConfig(new Config());

$plugin = new WordPressCorePlugin();
$plugin->activate($composer, $nullIO);
Expand Down

0 comments on commit 54bbbd6

Please sign in to comment.