This commit is contained in:
@@ -51,6 +51,15 @@ function firstArtifact(release: AppRelease) {
|
||||
return artifacts[0]?.[1] ?? release.artifact ?? '-';
|
||||
}
|
||||
|
||||
function hasDeployableImage(release: AppRelease) {
|
||||
const imageTags = release.imageTags as ImageTags | null | undefined;
|
||||
return Object.values(imageTags?.images ?? {}).some((image) => (
|
||||
typeof image === 'string'
|
||||
&& image.trim()
|
||||
&& !/^(postgres|mysql|mariadb|mongo)(:|@)/i.test(image.trim())
|
||||
));
|
||||
}
|
||||
|
||||
function deploymentTime(deployment: DeploymentJob) {
|
||||
const value = new Date(deployment.createdAt || deployment.startedAt || deployment.finishedAt || 0).getTime();
|
||||
return Number.isNaN(value) ? 0 : value;
|
||||
@@ -107,7 +116,9 @@ export function DeploymentManagementPage() {
|
||||
[deployedReleaseIdValues]
|
||||
);
|
||||
const deployableReleases = useMemo(
|
||||
() => filteredReleases.filter((release) => !deployedReleaseIds.has(release.id)),
|
||||
() => filteredReleases.filter((release) => (
|
||||
!deployedReleaseIds.has(release.id) && hasDeployableImage(release)
|
||||
)),
|
||||
[filteredReleases, deployedReleaseIds]
|
||||
);
|
||||
const filteredDeployments = useMemo(
|
||||
@@ -335,7 +346,7 @@ export function DeploymentManagementPage() {
|
||||
</Card>
|
||||
|
||||
<Card className="min-w-0 overflow-hidden">
|
||||
<CardHeader title="배포 가능 릴리즈" description="아직 성공 배포되지 않은 릴리즈만 표시합니다." />
|
||||
<CardHeader title="배포 가능 릴리즈" description="컨테이너 이미지가 있고 아직 성공 배포되지 않은 릴리즈만 표시합니다." />
|
||||
<div className="space-y-3 p-4">
|
||||
{deployableCards.length === 0 ? (
|
||||
<div className="rounded-md border border-border px-3 py-4 text-center text-sm text-muted-foreground">
|
||||
|
||||
Reference in New Issue
Block a user