mirror of
https://github.com/codeigniter4/CodeIgniter4.git
synced 2025-02-20 11:44:28 +08:00
Auto-review required dependency matching
This commit is contained in:
parent
a8e271ae46
commit
08f3d30aa4
49
.github/workflows/test-autoreview.yml
vendored
Normal file
49
.github/workflows/test-autoreview.yml
vendored
Normal file
@ -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
.github/workflows/test-phpunit.yml
vendored
2
.github/workflows/test-phpunit.yml
vendored
@ -126,7 +126,7 @@ jobs:
|
|||||||
run: echo "TACHYCARDIA_MONITOR_GA=enabled" >> $GITHUB_ENV
|
run: echo "TACHYCARDIA_MONITOR_GA=enabled" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Test with PHPUnit
|
- 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:
|
env:
|
||||||
DB: ${{ matrix.db-platforms }}
|
DB: ${{ matrix.db-platforms }}
|
||||||
TERM: xterm-256color
|
TERM: xterm-256color
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"CodeIgniter\\": "tests/system/",
|
"CodeIgniter\\": "tests/system/",
|
||||||
|
"CodeIgniter\\AutoReview\\": "tests/AutoReview/",
|
||||||
"Utils\\": "utils/"
|
"Utils\\": "utils/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -36,6 +36,9 @@
|
|||||||
</coverage>
|
</coverage>
|
||||||
|
|
||||||
<testsuites>
|
<testsuites>
|
||||||
|
<testsuite name="AutoReview">
|
||||||
|
<directory>./tests/AutoReview</directory>
|
||||||
|
</testsuite>
|
||||||
<testsuite name="System">
|
<testsuite name="System">
|
||||||
<directory>./tests/system</directory>
|
<directory>./tests/system</directory>
|
||||||
<exclude>./tests/system/Database</exclude>
|
<exclude>./tests/system/Database</exclude>
|
||||||
|
51
tests/AutoReview/ComposerJsonTest.php
Normal file
51
tests/AutoReview/ComposerJsonTest.php
Normal file
@ -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()
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user