Skip to content

Commit

Permalink
Auto-review required dependency matching
Browse files Browse the repository at this point in the history
  • Loading branch information
paulbalandan committed Jan 5, 2022
1 parent a8e271a commit 08f3d30
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 1 deletion.
49 changes: 49 additions & 0 deletions .github/workflows/test-autoreview.yml
@@ -0,0 +1,49 @@
name: Automatic Code Review

on:
pull_request:
paths:
- composer.json
- spark
- '**.php'
- .github/workflows/test-autoreview.yml
push:
paths:
- composer.json
- spark
- '**.php'
- .github/workflows/test-autoreview.yml

jobs:
auto-review-tests:
name: Automatic Code Review
runs-on: ubuntu-20.04

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
coverage: none

- name: Get composer cache directory
id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies
run: composer update --ansi
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}

- name: Run AutoReview Tests
run: vendor/bin/phpunit --color=always --group=auto-review --no-coverage
2 changes: 1 addition & 1 deletion .github/workflows/test-phpunit.yml
Expand Up @@ -126,7 +126,7 @@ jobs:
run: echo "TACHYCARDIA_MONITOR_GA=enabled" >> $GITHUB_ENV

- name: Test with PHPUnit
run: script -e -c "vendor/bin/phpunit --color=always"
run: script -e -c "vendor/bin/phpunit --color=always --exclude-group=auto-review"
env:
DB: ${{ matrix.db-platforms }}
TERM: xterm-256color
Expand Down
1 change: 1 addition & 0 deletions composer.json
Expand Up @@ -50,6 +50,7 @@
"autoload-dev": {
"psr-4": {
"CodeIgniter\\": "tests/system/",
"CodeIgniter\\AutoReview\\": "tests/AutoReview/",
"Utils\\": "utils/"
}
},
Expand Down
3 changes: 3 additions & 0 deletions phpunit.xml.dist
Expand Up @@ -36,6 +36,9 @@
</coverage>

<testsuites>
<testsuite name="AutoReview">
<directory>./tests/AutoReview</directory>
</testsuite>
<testsuite name="System">
<directory>./tests/system</directory>
<exclude>./tests/system/Database</exclude>
Expand Down
51 changes: 51 additions & 0 deletions tests/AutoReview/ComposerJsonTest.php
@@ -0,0 +1,51 @@
<?php

declare(strict_types=1);

/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/

namespace CodeIgniter\AutoReview;

use JsonException;
use PHPUnit\Framework\TestCase;

/**
* @internal
*
* @coversNothing
* @group auto-review
*/
final class ComposerJsonTest extends TestCase
{
public function testFrameworkRequireIsTheSameWithDevRequire(): void
{
$devComposer = $this->getComposerJson(dirname(__DIR__, 2) . '/composer.json');
$frameworkComposer = $this->getComposerJson(dirname(__DIR__, 2) . '/admin/framework/composer.json');

$this->assertSame(
$devComposer['require'],
$frameworkComposer['require'],
'The framework\'s "require" section is not updated with the main composer.json.'
);
}

private function getComposerJson(string $path): array
{
try {
return json_decode((string) file_get_contents($path), true, 512, JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
$this->fail(sprintf(
'The composer.json at "%s" is not readable or does not exist. Error was "%s".',
clean_path($path),
$e->getMessage()
));
}
}
}

0 comments on commit 08f3d30

Please sign in to comment.