mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
refactor: replace DeploymentSkipPatterns validator with VCS_DEPLOYMENT_SKIP_PATTERNS constant
This commit is contained in:
@@ -514,3 +514,8 @@ const CSV_ALLOWED_DATABASE_TYPES = [
|
||||
DATABASE_TYPE_TABLESDB,
|
||||
DATABASE_TYPE_VECTORSDB
|
||||
];
|
||||
|
||||
// VCS deployment skip patterns
|
||||
const VCS_DEPLOYMENT_SKIP_PATTERNS = [
|
||||
'[skip ci]',
|
||||
];
|
||||
|
||||
@@ -8,8 +8,8 @@ use Appwrite\Event\Publisher\Build as BuildPublisher;
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\Filter\BranchDomain as BranchDomainFilter;
|
||||
use Appwrite\Vcs\Comment;
|
||||
use Appwrite\Vcs\Validator\DeploymentSkipPatterns;
|
||||
use Utopia\Config\Config;
|
||||
use Utopia\Validator\Contains;
|
||||
use Utopia\Console;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Document;
|
||||
@@ -96,7 +96,7 @@ trait Deployment
|
||||
$resource = $authorization->skip(fn () => $dbForProject->getDocument($resourceCollection, $resourceId));
|
||||
$resourceInternalId = $resource->getSequence();
|
||||
|
||||
$commitSkip = new DeploymentSkipPatterns();
|
||||
$commitSkip = new Contains(VCS_DEPLOYMENT_SKIP_PATTERNS);
|
||||
if ($commitSkip->isValid($providerCommitMessage)) {
|
||||
Span::add("{$logBase}.build.skipped.reason", 'commitMessage');
|
||||
Span::add("{$logBase}.build.skipped", 'true');
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Appwrite\Vcs\Validator;
|
||||
|
||||
use Utopia\Validator\Contains;
|
||||
|
||||
class DeploymentSkipPatterns extends Contains
|
||||
{
|
||||
private const PATTERNS = [
|
||||
'[skip ci]',
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(self::PATTERNS);
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Vcs\Validator;
|
||||
|
||||
use Appwrite\Vcs\Validator\DeploymentSkipPatterns;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class DeploymentSkipPatternsTest extends TestCase
|
||||
{
|
||||
private DeploymentSkipPatterns $validator;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->validator = new DeploymentSkipPatterns();
|
||||
}
|
||||
|
||||
public function testKnownSkipDirectivesSkip(): void
|
||||
{
|
||||
$this->assertTrue($this->validator->isValid('[skip ci] update changelog'));
|
||||
}
|
||||
|
||||
public function testKnownSkipDirectivesAreCaseInsensitive(): void
|
||||
{
|
||||
$this->assertTrue($this->validator->isValid('[SKIP CI] update changelog'));
|
||||
}
|
||||
|
||||
public function testMessageWithoutKnownDirectiveProceeds(): void
|
||||
{
|
||||
$this->assertFalse($this->validator->isValid('fix: real bug fix'));
|
||||
$this->assertFalse($this->validator->isValid('feat: add new feature'));
|
||||
$this->assertFalse($this->validator->isValid('skip deploy without brackets'));
|
||||
$this->assertFalse($this->validator->isValid('deploy this please'));
|
||||
$this->assertFalse($this->validator->isValid('skip-checks:true'));
|
||||
}
|
||||
|
||||
public function testDirectiveCanAppearAnywhere(): void
|
||||
{
|
||||
$this->assertTrue($this->validator->isValid('docs: update readme [skip ci]'));
|
||||
$this->assertTrue($this->validator->isValid('docs: update readme[skip ci]'));
|
||||
$this->assertTrue($this->validator->isValid('prefix[skip ci]suffix'));
|
||||
$this->assertFalse($this->validator->isValid('refactor: skip ci cache seeding'));
|
||||
}
|
||||
|
||||
public function testMultilineCommitMessageSkips(): void
|
||||
{
|
||||
$message = "feat: add new stuff\n\nMore detail here.\n\n[skip ci]";
|
||||
|
||||
$this->assertTrue($this->validator->isValid($message));
|
||||
}
|
||||
|
||||
public function testNonStringCommitMessageProceeds(): void
|
||||
{
|
||||
$this->assertFalse($this->validator->isValid(null));
|
||||
$this->assertFalse($this->validator->isValid([]));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user