#feature: Jenkins 构建入口与自动创建 release 分支
加入 crm-web/crm-opm 并可跳转 Jenkins 发布页;自动创建 release 时 commit 使用 release-版本号,并跳过本地 git hook,避免 agent-be 被拦下。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -31,6 +31,7 @@ class JenkinsBuildController extends Controller
|
||||
'slug' => $project->slug,
|
||||
'name' => $project->name,
|
||||
'jenkins_job_name' => $project->jenkins_job_name,
|
||||
'jenkins_job_url' => $this->jenkinsClient->getJobUrl($project->jenkins_job_name),
|
||||
'parameters' => $this->jenkinsClient->getParameterDefinitions($project->jenkins_job_name),
|
||||
];
|
||||
})
|
||||
@@ -39,6 +40,7 @@ class JenkinsBuildController extends Controller
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => [
|
||||
'jenkins_host' => rtrim((string) config('jenkins.host'), '/'),
|
||||
'projects' => $projects,
|
||||
],
|
||||
]);
|
||||
@@ -79,10 +81,14 @@ class JenkinsBuildController extends Controller
|
||||
'project_slug' => $project->slug,
|
||||
'project_name' => $project->name,
|
||||
'job_name' => $project->jenkins_job_name,
|
||||
'jenkins_job_url' => $this->jenkinsClient->getJobUrl($project->jenkins_job_name),
|
||||
'success' => (bool) ($result['success'] ?? false),
|
||||
'message' => $result['message'] ?? null,
|
||||
'queue_url' => $result['queue_url'] ?? null,
|
||||
'build_number' => $result['build_number'] ?? null,
|
||||
'build_url' => isset($result['build_number'])
|
||||
? $this->jenkinsClient->getJobUrl($project->jenkins_job_name, (int) $result['build_number'])
|
||||
: null,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -120,14 +126,23 @@ class JenkinsBuildController extends Controller
|
||||
/** @var Project $project */
|
||||
$project = $projects[$build['project_slug']];
|
||||
|
||||
$status = $this->jenkinsClient->getBuildStatus(
|
||||
$project->jenkins_job_name,
|
||||
$build['queue_url'] ?? null,
|
||||
isset($build['build_number']) ? (int) $build['build_number'] : null
|
||||
);
|
||||
$buildNumber = $status['build_number'] ?? ($build['build_number'] ?? null);
|
||||
|
||||
$results[] = [
|
||||
'id' => $build['id'],
|
||||
'project_slug' => $project->slug,
|
||||
'job_name' => $project->jenkins_job_name,
|
||||
...$this->jenkinsClient->getBuildStatus(
|
||||
$project->jenkins_job_name,
|
||||
$build['queue_url'] ?? null,
|
||||
isset($build['build_number']) ? (int) $build['build_number'] : null
|
||||
'jenkins_job_url' => $this->jenkinsClient->getJobUrl($project->jenkins_job_name),
|
||||
...$status,
|
||||
'build_url' => $status['build_url'] ?? (
|
||||
$buildNumber
|
||||
? $this->jenkinsClient->getJobUrl($project->jenkins_job_name, (int) $buildNumber)
|
||||
: null
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user