diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index cb0b11679..e23496cd1 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -446,8 +446,12 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted $this->generate_image_names(); $this->cleanup_git(); $this->application->loadComposeFile(isInit: false); - $composeFile = $this->application->parseCompose(pull_request_id: $this->pull_request_id); - $yaml = Yaml::dump($composeFile->toArray(), 10); + if ($this->application->settings->is_raw_compose_deployment_enabled) { + $yaml = $composeFile = $this->application->docker_compose_raw; + } else { + $composeFile = $this->application->parseCompose(pull_request_id: $this->pull_request_id); + $yaml = Yaml::dump($composeFile->toArray(), 10); + } $this->docker_compose_base64 = base64_encode($yaml); $this->execute_remote_command([ executeInDocker($this->deployment_uuid, "echo '{$this->docker_compose_base64}' | base64 -d > {$this->workdir}{$this->docker_compose_location}"), "hidden" => true diff --git a/app/Livewire/Project/Application/General.php b/app/Livewire/Project/Application/General.php index 39cb15b27..6b2f07dc3 100644 --- a/app/Livewire/Project/Application/General.php +++ b/app/Livewire/Project/Application/General.php @@ -66,6 +66,7 @@ class General extends Component 'application.settings.is_static' => 'boolean|required', 'application.docker_compose_custom_start_command' => 'nullable', 'application.docker_compose_custom_build_command' => 'nullable', + 'application.settings.is_raw_compose_deployment_enabled' => 'boolean|required', ]; protected $validationAttributes = [ 'application.name' => 'name', @@ -98,6 +99,7 @@ class General extends Component 'application.settings.is_static' => 'Is static', 'application.docker_compose_custom_start_command' => 'Docker compose custom start command', 'application.docker_compose_custom_build_command' => 'Docker compose custom build command', + 'application.settings.is_raw_compose_deployment_enabled' => 'Is raw compose deployment enabled', ]; public function mount() { diff --git a/config/sentry.php b/config/sentry.php index 2c961e4ee..84bd36a64 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.176', + 'release' => '4.0.0-beta.177', // 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 32a6f4ada..2fa0950f8 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ boolean('is_raw_compose_deployment_enabled')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('application_settings', function (Blueprint $table) { + $table->dropColumn('is_raw_compose_deployment_enabled'); + }); + } +}; diff --git a/resources/views/livewire/project/application/advanced.blade.php b/resources/views/livewire/project/application/advanced.blade.php index 12f7d7397..f30f40974 100644 --- a/resources/views/livewire/project/application/advanced.blade.php +++ b/resources/views/livewire/project/application/advanced.blade.php @@ -5,9 +5,10 @@
Advanced configuration for your application.
- - + @if (!$application->settings->is_raw_compose_deployment_enabled) + + @endif diff --git a/resources/views/livewire/project/application/general.blade.php b/resources/views/livewire/project/application/general.blade.php index 6c50dec1d..98fc648ee 100644 --- a/resources/views/livewire/project/application/general.blade.php +++ b/resources/views/livewire/project/application/general.blade.php @@ -48,7 +48,10 @@
@endif @if ($application->build_pack === 'dockercompose') - @if (count($parsedServices) > 0) + + @if (count($parsedServices) > 0 && !$application->settings->is_raw_compose_deployment_enabled) @foreach (data_get($parsedServices, 'services') as $serviceName => $service) @if (!isDatabaseImage(data_get($service, 'image')))
@@ -184,8 +187,13 @@ @endif @if ($application->build_pack === 'dockercompose') Reload Compose File - + @if ($application->settings->is_raw_compose_deployment_enabled) + + @else + + @endif {{-- --}} @endif diff --git a/versions.json b/versions.json index 32506828e..943f4c9ae 100644 --- a/versions.json +++ b/versions.json @@ -4,7 +4,7 @@ "version": "3.12.36" }, "v4": { - "version": "4.0.0-beta.176" + "version": "4.0.0-beta.177" } } }