mirror of
https://github.com/coollabsio/coolify.git
synced 2026-03-11 08:55:47 +00:00
Implement end-to-end GitHub Actions runner support with provisioning, tracking, and cleanup flows. - handle `workflow_job` webhooks to provision and tear down runners - add runner config/execution models, enum states, and relationships - create jobs for provisioning, cleanup, and stale-runner reaping - schedule periodic stale runner cleanup in the console kernel - add Livewire server UI to manage runner configuration and executions - store GitHub App runner permissions and runner group metadata - add migrations for runner permissions, configs, executions, and group id - update GitHub permissions URL generation for organization app settings - include feature/unit tests for runner behavior and permission paths
23 lines
1 KiB
PHP
23 lines
1 KiB
PHP
<?php
|
|
|
|
use App\Enums\GithubRunnerStatus;
|
|
|
|
it('identifies active statuses correctly', function () {
|
|
expect(GithubRunnerStatus::Queued->isActive())->toBeTrue();
|
|
expect(GithubRunnerStatus::Provisioning->isActive())->toBeTrue();
|
|
expect(GithubRunnerStatus::Running->isActive())->toBeTrue();
|
|
expect(GithubRunnerStatus::Cleaning->isActive())->toBeTrue();
|
|
});
|
|
|
|
it('identifies inactive statuses correctly', function () {
|
|
expect(GithubRunnerStatus::Completed->isActive())->toBeFalse();
|
|
expect(GithubRunnerStatus::Failed->isActive())->toBeFalse();
|
|
expect(GithubRunnerStatus::TimedOut->isActive())->toBeFalse();
|
|
});
|
|
|
|
it('creates from string values', function () {
|
|
expect(GithubRunnerStatus::from('queued'))->toBe(GithubRunnerStatus::Queued);
|
|
expect(GithubRunnerStatus::from('running'))->toBe(GithubRunnerStatus::Running);
|
|
expect(GithubRunnerStatus::from('completed'))->toBe(GithubRunnerStatus::Completed);
|
|
expect(GithubRunnerStatus::from('timed_out'))->toBe(GithubRunnerStatus::TimedOut);
|
|
});
|