Compare commits

..

10 Commits

Author SHA1 Message Date
Andras Bacsai
ede2274816 Merge pull request #2234 from coollabsio/next
v4.0.0-beta.283
2024-05-17 15:34:00 +02:00
Andras Bacsai
ead672afb2 fix: PR deployments have good predefined envs 2024-05-17 15:30:27 +02:00
Andras Bacsai
73bc7b045e feat: Add pull_request_id filter to get_last_successful_deployment method in Application model 2024-05-17 15:28:54 +02:00
Andras Bacsai
3281502c25 feat: Update healthcheck test in StartMongodb action 2024-05-17 14:35:37 +02:00
Andras Bacsai
ca35e536db chore: Update version to 4.0.0-beta.283 2024-05-17 14:35:31 +02:00
Andras Bacsai
bb8e0eb7bf Merge pull request #2232 from coollabsio/next
quickfixes
2024-05-17 13:44:12 +02:00
Andras Bacsai
bb451ac3b5 Refactor BackupExecutions.php to use optional chaining for deleting failed backup executions 2024-05-17 13:43:36 +02:00
Andras Bacsai
b0b7842f9c Refactor BackupEdit component to handle null s3_storage_id 2024-05-17 13:43:21 +02:00
Andras Bacsai
aad661cb65 Merge pull request #2231 from coollabsio/next
v4.0.0-beta.282
2024-05-17 13:41:33 +02:00
Andras Bacsai
ed9b63520d Refactor gitCommitLink method in Application model 2024-05-17 13:40:28 +02:00
8 changed files with 26 additions and 15 deletions

View File

@@ -50,8 +50,9 @@ class StartMongodb
],
'healthcheck' => [
'test' => [
'CMD-SHELL',
'mongosh --eval "printjson(db.runCommand(\"ping\"))"'
"CMD",
"echo",
"ok"
],
'interval' => '5s',
'timeout' => '5s',

View File

@@ -713,6 +713,10 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
private function save_environment_variables()
{
$envs = collect([]);
$local_branch = $this->branch;
if ($this->pull_request_id !== 0) {
$local_branch = "pull/{$this->pull_request_id}/head";
}
$sort = $this->application->settings->is_env_sorting_enabled;
if ($sort) {
$sorted_environment_variables = $this->application->environment_variables->sortBy('key');
@@ -740,7 +744,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
$envs->push("COOLIFY_URL={$url}");
}
if ($this->application->environment_variables_preview->where('key', 'COOLIFY_BRANCH')->isEmpty()) {
$envs->push("COOLIFY_BRANCH={$this->application->git_branch}");
$envs->push("COOLIFY_BRANCH={$local_branch}");
}
foreach ($sorted_environment_variables_preview as $env) {
$real_value = $env->real_value;
@@ -781,7 +785,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
$envs->push("COOLIFY_URL={$url}");
}
if ($this->application->environment_variables_preview->where('key', 'COOLIFY_BRANCH')->isEmpty()) {
$envs->push("COOLIFY_BRANCH={$this->application->git_branch}");
$envs->push("COOLIFY_BRANCH={$local_branch}");
}
foreach ($sorted_environment_variables as $env) {
$real_value = $env->real_value;
@@ -995,6 +999,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
$this->generate_image_names();
$this->application_deployment_queue->addLogEntry("Starting pull request (#{$this->pull_request_id}) deployment of {$this->customRepository}:{$this->application->git_branch}.");
$this->prepare_builder_image();
$this->check_git_if_build_needed();
$this->clone_repository();
$this->set_base_dir();
$this->cleanup_git();
@@ -1124,6 +1129,10 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
private function check_git_if_build_needed()
{
$this->generate_git_import_commands();
$local_branch = $this->branch;
if ($this->pull_request_id !== 0) {
$local_branch = "pull/{$this->pull_request_id}/head";
}
$private_key = data_get($this->application, 'private_key.private_key');
if ($private_key) {
$private_key = base64_encode($private_key);
@@ -1138,7 +1147,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
executeInDocker($this->deployment_uuid, "chmod 600 /root/.ssh/id_rsa")
],
[
executeInDocker($this->deployment_uuid, "GIT_SSH_COMMAND=\"ssh -o ConnectTimeout=30 -p {$this->customPort} -o Port={$this->customPort} -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /root/.ssh/id_rsa\" git ls-remote {$this->fullRepoUrl} {$this->branch}"),
executeInDocker($this->deployment_uuid, "GIT_SSH_COMMAND=\"ssh -o ConnectTimeout=30 -p {$this->customPort} -o Port={$this->customPort} -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /root/.ssh/id_rsa\" git ls-remote {$this->fullRepoUrl} {$local_branch}"),
"hidden" => true,
"save" => "git_commit_sha"
],
@@ -1146,12 +1155,13 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
} else {
$this->execute_remote_command(
[
executeInDocker($this->deployment_uuid, "GIT_SSH_COMMAND=\"ssh -o ConnectTimeout=30 -p {$this->customPort} -o Port={$this->customPort} -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null\" git ls-remote {$this->fullRepoUrl} {$this->branch}"),
executeInDocker($this->deployment_uuid, "GIT_SSH_COMMAND=\"ssh -o ConnectTimeout=30 -p {$this->customPort} -o Port={$this->customPort} -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null\" git ls-remote {$this->fullRepoUrl} {$local_branch}"),
"hidden" => true,
"save" => "git_commit_sha"
],
);
}
ray("GIT_SSH_COMMAND=\"ssh -o ConnectTimeout=30 -p {$this->customPort} -o Port={$this->customPort} -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null\" git ls-remote {$this->fullRepoUrl} {$local_branch}");
if ($this->saved_outputs->get('git_commit_sha') && !$this->rollback) {
$this->commit = $this->saved_outputs->get('git_commit_sha')->before("\t");
$this->application_deployment_queue->commit = $this->commit;
@@ -1167,6 +1177,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
if ($this->pull_request_id !== 0) {
$this->application_deployment_queue->addLogEntry("Checking out tag pull/{$this->pull_request_id}/head.");
}
ray($importCommands);
$this->execute_remote_command(
[
$importCommands, "hidden" => true
@@ -1180,6 +1191,8 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
"save" => "commit_message"
]
);
ray($this->saved_outputs->get('commit_message'));
raY($this->commit);
if ($this->saved_outputs->get('commit_message')) {
$commit_message = str($this->saved_outputs->get('commit_message'))->limit(47);
$this->application_deployment_queue->commit_message = $commit_message->value();

View File

@@ -35,7 +35,7 @@ class BackupEdit extends Component
public function mount()
{
$this->parameters = get_route_parameters();
if (is_null($this->backup->s3_storage_id)) {
if (is_null(data_get($this->backup, 's3_storage_id'))) {
$this->backup->s3_storage_id = 'default';
}
}

View File

@@ -20,7 +20,7 @@ class BackupExecutions extends Component
public function cleanupFailed()
{
$this->backup->executions()->where('status', 'failed')->delete();
$this->backup?->executions()->where('status', 'failed')->delete();
$this->refreshBackupExecutions();
}
public function deleteBackup($exeuctionId)

View File

@@ -199,9 +199,6 @@ class Application extends BaseModel
}
if (strpos($this->git_repository, 'git@') === 0) {
$git_repository = str_replace(['git@', ':', '.git'], ['', '/', ''], $this->git_repository);
if (str($this->source->html_url)->contains('bitbucket')) {
return "https://{$git_repository}/commits/{$link}";
}
return "https://{$git_repository}/commit/{$link}";
}
return $this->git_repository;
@@ -462,7 +459,7 @@ class Application extends BaseModel
}
public function get_last_successful_deployment()
{
return ApplicationDeploymentQueue::where('application_id', $this->id)->where('status', 'finished')->orderBy('created_at', 'desc')->first();
return ApplicationDeploymentQueue::where('application_id', $this->id)->where('status', 'finished')->where('pull_request_id', 0)->orderBy('created_at', 'desc')->first();
}
public function get_last_days_deployments()
{

View File

@@ -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.281',
'release' => '4.0.0-beta.283',
// When left empty or `null` the Laravel environment will be used
'environment' => config('app.env'),

View File

@@ -1,3 +1,3 @@
<?php
return '4.0.0-beta.281';
return '4.0.0-beta.283';

View File

@@ -1,7 +1,7 @@
{
"coolify": {
"v4": {
"version": "4.0.0-beta.281"
"version": "4.0.0-beta.283"
},
"sentinel": {
"version": "0.0.4"