wip
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Application;
|
||||||
|
use App\Models\Environment;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
@@ -9,8 +11,7 @@ class ProjectController extends Controller
|
|||||||
{
|
{
|
||||||
public function environments()
|
public function environments()
|
||||||
{
|
{
|
||||||
$project_uuid = request()->route('project_uuid');
|
$project = session('currentTeam')->projects->where('uuid', request()->route('project_uuid'))->first();
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
|
||||||
if (!$project) {
|
if (!$project) {
|
||||||
return redirect()->route('home');
|
return redirect()->route('home');
|
||||||
}
|
}
|
||||||
@@ -18,94 +19,33 @@ class ProjectController extends Controller
|
|||||||
}
|
}
|
||||||
public function resources()
|
public function resources()
|
||||||
{
|
{
|
||||||
$project_uuid = request()->route('project_uuid');
|
$project = session('currentTeam')->projects->where('uuid', request()->route('project_uuid'))->first();
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
|
||||||
if (!$project) {
|
if (!$project) {
|
||||||
return redirect()->route('home');
|
return redirect()->route('home');
|
||||||
}
|
}
|
||||||
$environment = $project->environments->where('name', request()->route('environment_name'))->first();
|
$environment = Environment::where('name', request()->route('environment_name'))->where('project_id', $project->id)->first();
|
||||||
|
// $environment = $project->environments->where('name', request()->route('environment_name'))->first();
|
||||||
return view('project.resources', ['project' => $project, 'environment' => $environment]);
|
return view('project.resources', ['project' => $project, 'environment' => $environment]);
|
||||||
}
|
}
|
||||||
public function application()
|
public function application()
|
||||||
{
|
{
|
||||||
$project_uuid = request()->route('project_uuid');
|
$application = Application::where('uuid', request()->route('application_uuid'))->first();
|
||||||
$environment_name = request()->route('environment_name');
|
|
||||||
$application_uuid = request()->route('application_uuid');
|
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
|
||||||
if (!$project) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$environment = $project->environments->where('name', $environment_name)->first();
|
|
||||||
if (!$environment) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$application = $environment->applications->where('uuid', $application_uuid)->first();
|
|
||||||
if (!$application) {
|
if (!$application) {
|
||||||
return redirect()->route('home');
|
return redirect()->route('home');
|
||||||
}
|
}
|
||||||
return view('project.application', ['project' => $project, 'application' => $application, 'deployments' => $application->deployments()]);
|
return view('project.application', ['application' => $application, 'deployments' => $application->deployments()]);
|
||||||
}
|
}
|
||||||
public function database()
|
|
||||||
{
|
|
||||||
$project_uuid = request()->route('project_uuid');
|
|
||||||
$environment_name = request()->route('environment_name');
|
|
||||||
$database_uuid = request()->route('database_uuid');
|
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
|
||||||
if (!$project) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$environment = $project->environments->where('name', $environment_name)->first();
|
|
||||||
if (!$environment) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$database = $environment->databases->where('uuid', $database_uuid)->first();
|
|
||||||
if (!$database) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('project.database', ['project' => $project, 'database' => $database]);
|
|
||||||
}
|
|
||||||
public function service()
|
|
||||||
{
|
|
||||||
$project_uuid = request()->route('project_uuid');
|
|
||||||
$environment_name = request()->route('environment_name');
|
|
||||||
$service_uuid = request()->route('service_uuid');
|
|
||||||
|
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
|
||||||
if (!$project) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$environment = $project->environments->where('name', $environment_name)->first();
|
|
||||||
if (!$environment) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$service = $environment->services->where('uuid', $service_uuid)->first();
|
|
||||||
if (!$service) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('project.service', ['project' => $project, 'service' => $service]);
|
|
||||||
}
|
|
||||||
public function deployment()
|
public function deployment()
|
||||||
{
|
{
|
||||||
$project_uuid = request()->route('project_uuid');
|
|
||||||
$environment_name = request()->route('environment_name');
|
|
||||||
$application_uuid = request()->route('application_uuid');
|
$application_uuid = request()->route('application_uuid');
|
||||||
$deployment_uuid = request()->route('deployment_uuid');
|
$deployment_uuid = request()->route('deployment_uuid');
|
||||||
|
|
||||||
$project = session('currentTeam')->projects->where('uuid', $project_uuid)->first();
|
$application = Application::where('uuid', request()->route('application_uuid'))->first();
|
||||||
if (!$project) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$environment = $project->environments->where('name', $environment_name)->first();
|
|
||||||
if (!$environment) {
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
$application = $environment->applications->where('uuid', $application_uuid)->first();
|
|
||||||
if (!$application) {
|
if (!$application) {
|
||||||
return redirect()->route('home');
|
return redirect()->route('home');
|
||||||
}
|
}
|
||||||
$activity = $application->get_deployment($deployment_uuid);
|
$activity = $application->get_deployment($deployment_uuid);
|
||||||
return view('project.deployment', ['project' => $project, 'activity' => $activity]);
|
return view('project.deployment', ['activity' => $activity]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ class DeployApplication extends Component
|
|||||||
|
|
||||||
$this->execute_in_builder("docker build -f {$workdir}/Dockerfile --build-arg SOURCE_COMMIT=$(cat {$workdir}/.git-commit) --progress plain -t {$this->application->uuid}:$(cat {$workdir}/.git-commit) {$workdir}");
|
$this->execute_in_builder("docker build -f {$workdir}/Dockerfile --build-arg SOURCE_COMMIT=$(cat {$workdir}/.git-commit) --progress plain -t {$this->application->uuid}:$(cat {$workdir}/.git-commit) {$workdir}");
|
||||||
$this->command[] = "echo 'Done.'";
|
$this->command[] = "echo 'Done.'";
|
||||||
// $this->execute_in_builder("test ! -z \"$(docker ps --format '{{.State}}' --filter 'name={$this->application->uuid}')\" && docker rm -f {$this->application->uuid} >/dev/null 2>&1");
|
$this->execute_in_builder("docker rm -f {$this->application->uuid} >/dev/null 2>&1");
|
||||||
|
|
||||||
$this->command[] = "echo -n 'Deploying... '";
|
$this->command[] = "echo -n 'Deploying... '";
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace App\Models;
|
|||||||
|
|
||||||
class Project extends BaseModel
|
class Project extends BaseModel
|
||||||
{
|
{
|
||||||
|
protected $with = ['settings', 'environments'];
|
||||||
protected static function booted()
|
protected static function booted()
|
||||||
{
|
{
|
||||||
static::created(function ($project) {
|
static::created(function ($project) {
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<h1>Deployment</h1>
|
<h1>Deployment</h1>
|
||||||
<p>Name: {{ $project->name }}</p>
|
|
||||||
<p>UUID: {{ $project->uuid }}</p>
|
|
||||||
|
|
||||||
<livewire:poll-activity :activity="$activity" />
|
<livewire:poll-activity :activity="$activity" />
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
<div>
|
<div>
|
||||||
@foreach ($environment->applications as $application)
|
@foreach ($environment->applications as $application)
|
||||||
<p>
|
<p>
|
||||||
<a href="{{ route('project.application', [$project->uuid, $environment->name, $application->uuid]) }}">
|
<a href="{{ route('project.application', [$application->uuid]) }}">
|
||||||
{{ $application->name }}
|
{{ $application->name }}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
@endforeach
|
@endforeach
|
||||||
@foreach ($environment->databases as $database)
|
{{-- @foreach ($environment->databases as $database)
|
||||||
<p>
|
<p>
|
||||||
<a href="{{ route('project.database', [$project->uuid, $environment->name, $database->uuid]) }}">
|
<a href="{{ route('project.database', [$project->uuid, $environment->name, $database->uuid]) }}">
|
||||||
{{ $database->name }}
|
{{ $database->name }}
|
||||||
@@ -21,6 +21,6 @@
|
|||||||
{{ $service->name }}
|
{{ $service->name }}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
@endforeach
|
@endforeach --}}
|
||||||
</div>
|
</div>
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
|
|
||||||
Route::get('/project/{project_uuid}/{environment_name}', [ProjectController::class, 'resources'])->name('project.resources');
|
Route::get('/project/{project_uuid}/{environment_name}', [ProjectController::class, 'resources'])->name('project.resources');
|
||||||
|
|
||||||
Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application');
|
Route::get('/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application');
|
||||||
Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment');
|
Route::get('/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment');
|
||||||
|
|
||||||
Route::get('/project/{project_uuid}/{environment_name}/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database');
|
// Route::get('/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database');
|
||||||
Route::get('/project/{project_uuid}/{environment_name}/service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service');
|
// Route::get('//service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service');
|
||||||
|
|
||||||
Route::get('/profile', function () {
|
Route::get('/profile', function () {
|
||||||
return view('profile');
|
return view('profile');
|
||||||
|
|||||||
Reference in New Issue
Block a user