commit
						390d24b6d7
					
				| @ -72,8 +72,7 @@ class Previews extends Component | ||||
|     public function stop(int $pull_request_id) | ||||
|     { | ||||
|         try { | ||||
|             $container_name = generateApplicationContainerName($this->application); | ||||
|             ray('Stopping container: ' . $container_name); | ||||
|             $container_name = generateApplicationContainerName($this->application, $pull_request_id); | ||||
| 
 | ||||
|             instant_remote_process(["docker rm -f $container_name"], $this->application->destination->server, throwError: false); | ||||
|             ApplicationPreview::where('application_id', $this->application->id)->where('pull_request_id', $pull_request_id)->delete(); | ||||
|  | ||||
| @ -26,6 +26,10 @@ class PublicGitRepository extends Component | ||||
|     public string $git_branch = 'main'; | ||||
|     public int $rate_limit_remaining = 0; | ||||
|     public $rate_limit_reset = 0; | ||||
|     private object $repository_url_parsed; | ||||
|     public GithubApp|GitlabApp|null $git_source = null; | ||||
|     public string $git_host; | ||||
|     public string $git_repository; | ||||
|     protected $rules = [ | ||||
|         'repository_url' => 'required|url', | ||||
|         'port' => 'required|numeric', | ||||
| @ -38,10 +42,6 @@ class PublicGitRepository extends Component | ||||
|         'is_static' => 'static', | ||||
|         'publish_directory' => 'publish directory', | ||||
|     ]; | ||||
|     private object $repository_url_parsed; | ||||
|     private GithubApp|GitlabApp|null $git_source = null; | ||||
|     private string $git_host; | ||||
|     private string $git_repository; | ||||
| 
 | ||||
|     public function mount() | ||||
|     { | ||||
| @ -76,6 +76,7 @@ class PublicGitRepository extends Component | ||||
|             $this->get_branch(); | ||||
|             $this->selected_branch = $this->git_branch; | ||||
|         } catch (\Throwable $e) { | ||||
|             ray($e->getMessage()); | ||||
|             if (!$this->branch_found && $this->git_branch == 'main') { | ||||
|                 try { | ||||
|                     $this->git_branch = 'master'; | ||||
| @ -123,9 +124,6 @@ class PublicGitRepository extends Component | ||||
|             $project_uuid = $this->parameters['project_uuid']; | ||||
|             $environment_name = $this->parameters['environment_name']; | ||||
| 
 | ||||
|             $this->get_git_source(); | ||||
|             $this->git_branch = $this->selected_branch ?? $this->git_branch; | ||||
| 
 | ||||
|             $destination = StandaloneDocker::where('uuid', $destination_uuid)->first(); | ||||
|             if (!$destination) { | ||||
|                 $destination = SwarmDocker::where('uuid', $destination_uuid)->first(); | ||||
|  | ||||
| @ -89,7 +89,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted | ||||
|         $this->build_workdir = "{$this->workdir}" . rtrim($this->application->base_directory, '/'); | ||||
|         $this->is_debug_enabled = $this->application->settings->is_debug_enabled; | ||||
| 
 | ||||
|         $this->container_name = generateApplicationContainerName($this->application); | ||||
|         $this->container_name = generateApplicationContainerName($this->application, $this->pull_request_id); | ||||
|         savePrivateKeyToFs($this->server); | ||||
|         $this->saved_outputs = collect(); | ||||
| 
 | ||||
| @ -97,7 +97,9 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted | ||||
|         if ($this->pull_request_id !== 0) { | ||||
|             $this->preview = ApplicationPreview::findPreviewByApplicationAndPullId($this->application->id, $this->pull_request_id); | ||||
|             if ($this->application->fqdn) { | ||||
|                 $preview_fqdn = getFqdnWithoutPort(data_get($this->preview, 'fqdn')); | ||||
|                 if (data_get($this->preview, 'fqdn')) { | ||||
|                     $preview_fqdn = getFqdnWithoutPort(data_get($this->preview, 'fqdn')); | ||||
|                 } | ||||
|                 $template = $this->application->preview_url_template; | ||||
|                 $url = Url::fromString($this->application->fqdn); | ||||
|                 $host = $url->getHost(); | ||||
| @ -284,7 +286,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted | ||||
| 
 | ||||
|     private function rolling_update() | ||||
|     { | ||||
|         if (count($this->application->ports_mappings_array) > 0){ | ||||
|         if (count($this->application->ports_mappings_array) > 0) { | ||||
|             $this->execute_remote_command( | ||||
|                 ["echo -n 'Application has ports mapped to the host system, rolling update is not supported. Stopping current container.'"], | ||||
|             ); | ||||
| @ -399,7 +401,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted | ||||
|     { | ||||
|         $this->execute_remote_command( | ||||
|             [ | ||||
|                 "echo -n 'Importing {$this->application->git_repository}:{$this->application->git_branch} to {$this->workdir}. '" | ||||
|                 "echo -n 'Importing {$this->application->git_repository}:{$this->application->git_branch} (commit sha {$this->application->git_commit_sha}) to {$this->workdir}. '" | ||||
|             ], | ||||
|             [ | ||||
|                 $this->importing_git_repository() | ||||
|  | ||||
| @ -108,9 +108,9 @@ class ContainerStatusJob implements ShouldQueue, ShouldBeEncrypted | ||||
|                 $labelId = data_get($labels, 'coolify.applicationId'); | ||||
|                 if ($labelId) { | ||||
|                     if (str_contains($labelId, '-pr-')) { | ||||
|                         $previewId = (int) Str::after($labelId, '-pr-'); | ||||
|                         $pullRequestId = data_get($labels, 'coolify.pullRequestId'); | ||||
|                         $applicationId = (int) Str::before($labelId, '-pr-'); | ||||
|                         $preview = ApplicationPreview::where('application_id', $applicationId)->where('pull_request_id', $previewId)->first(); | ||||
|                         $preview = ApplicationPreview::where('application_id', $applicationId)->where('pull_request_id', $pullRequestId)->first(); | ||||
|                         if ($preview) { | ||||
|                             $foundApplicationPreviews[] = $preview->id; | ||||
|                             $statusFromDb = $preview->status; | ||||
|  | ||||
| @ -104,11 +104,11 @@ function getContainerStatus(Server $server, string $container_id, bool $all_data | ||||
|     return data_get($container[0], 'State.Status', 'exited'); | ||||
| } | ||||
| 
 | ||||
| function generateApplicationContainerName(Application $application) | ||||
| function generateApplicationContainerName(Application $application, $pull_request_id = 0) | ||||
| { | ||||
|     $now = now()->format('Hisu'); | ||||
|     if ($application->pull_request_id !== 0 && $application->pull_request_id !== null) { | ||||
|         return $application->uuid . '-pr-' . $application->pull_request_id; | ||||
|     if ($pull_request_id !== 0 && $pull_request_id !== null) { | ||||
|         return $application->uuid . '-pr-' . $pull_request_id; | ||||
|     } else { | ||||
|         return $application->uuid . '-' . $now; | ||||
|     } | ||||
| @ -207,10 +207,10 @@ function generateLabelsApplication(Application $application, ?ApplicationPreview | ||||
| { | ||||
| 
 | ||||
|     $pull_request_id = data_get($preview, 'pull_request_id', 0); | ||||
|     $container_name = generateApplicationContainerName($application); | ||||
|     $container_name = generateApplicationContainerName($application, $pull_request_id); | ||||
|     $appId = $application->id; | ||||
|     if ($pull_request_id !== 0) { | ||||
|         $appId = $appId . '-pr-' . $application->pull_request_id; | ||||
|     if ($pull_request_id !== 0 && $pull_request_id !== null) { | ||||
|         $appId = $appId . '-pr-' . $pull_request_id; | ||||
|     } | ||||
|     $labels = collect([]); | ||||
|     $labels = $labels->merge(defaultLabels($appId, $container_name, $pull_request_id)); | ||||
|  | ||||
| @ -7,7 +7,7 @@ return [ | ||||
| 
 | ||||
|     // The release version of your application
 | ||||
|     // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
 | ||||
|     'release' => '4.0.0-beta.53', | ||||
|     'release' => '4.0.0-beta.54', | ||||
|     // When left empty or `null` the Laravel environment will be used
 | ||||
|     'environment' => config('app.env'), | ||||
| 
 | ||||
|  | ||||
| @ -1,3 +1,3 @@ | ||||
| <?php | ||||
| 
 | ||||
| return '4.0.0-beta.53'; | ||||
| return '4.0.0-beta.54'; | ||||
|  | ||||
| @ -54,11 +54,11 @@ | ||||
|                 <div class="flex flex-col p-4 bg-coolgray-200"> | ||||
|                     <div class="flex gap-2">PR #{{ data_get($preview, 'pull_request_id') }} |
 | ||||
|                         @if (Str::of(data_get($preview, 'status'))->startsWith('running')) | ||||
|                             <x-status.running :status="$status" /> | ||||
|                             <x-status.running :status="data_get($preview, 'status')" /> | ||||
|                         @elseif(Str::of(data_get($preview, 'status'))->startsWith('restarting')) | ||||
|                             <x-status.restarting :status="$status" /> | ||||
|                             <x-status.restarting :status="data_get($preview, 'status')" /> | ||||
|                         @else | ||||
|                             <x-status.stopped :status="$status" /> | ||||
|                             <x-status.stopped :status="data_get($preview, 'status')" /> | ||||
|                         @endif | ||||
|                         @if (data_get($preview, 'status') !== 'exited') | ||||
|                             | <a target="_blank" href="{{ data_get($preview, 'fqdn') }}">Open Preview | ||||
|  | ||||
| @ -172,9 +172,9 @@ Route::post('/source/github/events', function () { | ||||
|                     $found = ApplicationPreview::where('application_id', $application->id)->where('pull_request_id', $pull_request_id)->first(); | ||||
|                     if ($found) { | ||||
|                         $found->delete(); | ||||
|                         $container_name = generateApplicationContainerName($application); | ||||
|                         ray('Stopping container: ' . $container_name); | ||||
|                         remote_process(["docker rm -f $container_name"], $application->destination->server); | ||||
|                         $container_name = generateApplicationContainerName($application,$pull_request_id); | ||||
|                         // ray('Stopping container: ' . $container_name);
 | ||||
|                         instant_remote_process(["docker rm -f $container_name"], $application->destination->server); | ||||
|                         return response('Preview Deployment closed.'); | ||||
|                     } | ||||
|                     return response('Nothing to do. No Preview Deployment found'); | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|             "version": "3.12.36" | ||||
|         }, | ||||
|         "v4": { | ||||
|             "version": "4.0.0-beta.53" | ||||
|             "version": "4.0.0-beta.54" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user