diff --git a/app/Http/Livewire/Project/Application/Previews.php b/app/Http/Livewire/Project/Application/Previews.php index 32dc0219b..a5459a7bb 100644 --- a/app/Http/Livewire/Project/Application/Previews.php +++ b/app/Http/Livewire/Project/Application/Previews.php @@ -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(); diff --git a/app/Http/Livewire/Project/New/PublicGitRepository.php b/app/Http/Livewire/Project/New/PublicGitRepository.php index 4aee4c3bf..837c32abe 100644 --- a/app/Http/Livewire/Project/New/PublicGitRepository.php +++ b/app/Http/Livewire/Project/New/PublicGitRepository.php @@ -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(); diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index eeabb185f..69d385445 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -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() diff --git a/app/Jobs/ContainerStatusJob.php b/app/Jobs/ContainerStatusJob.php index 6d27555f1..f2abae3ca 100644 --- a/app/Jobs/ContainerStatusJob.php +++ b/app/Jobs/ContainerStatusJob.php @@ -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; diff --git a/bootstrap/helpers/docker.php b/bootstrap/helpers/docker.php index 6aa16d964..fdb682a72 100644 --- a/bootstrap/helpers/docker.php +++ b/bootstrap/helpers/docker.php @@ -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)); diff --git a/config/sentry.php b/config/sentry.php index b34772125..788868730 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -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'), diff --git a/config/version.php b/config/version.php index c90e8cda6..209bb48f3 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@