Compare commits

..

95 Commits

Author SHA1 Message Date
chyoo d10cccd1ae Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-08-13 17:49:04 +09:00
chyoo b7a0afe497 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-08-07 13:08:17 +09:00
chyoo 5a814716b7 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-15 16:00:57 +09:00
chyoo 37e0ac34c6 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-15 14:10:06 +09:00
chyoo 23e3d6e480 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 15:25:12 +09:00
chyoo 0d216e2f03 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 15:08:35 +09:00
chyoo 3a46232d4f merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 13:36:16 +09:00
chyoo d37283093a merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 13:15:13 +09:00
chyoo d897cba32c merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 11:52:04 +09:00
chyoo b41941d425 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-14 10:45:07 +09:00
chyoo d87c92ff71 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-13 17:15:05 +09:00
chyoo ddf3aa9784 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-13 16:55:44 +09:00
chyoo e755f245f3 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 14:21:43 +09:00
chyoo 917b9b6071 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 13:48:03 +09:00
chyoo 35fe3c94b1 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 13:44:44 +09:00
chyoo 813fef4318 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 13:40:07 +09:00
chyoo af5fd60937 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 13:14:26 +09:00
chyoo f895fa8edc merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 11:21:20 +09:00
chyoo 01c82ab17c merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 11:11:29 +09:00
chyoo 994520b754 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 10:49:46 +09:00
chyoo 353bf8ea73 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-10 10:43:00 +09:00
chyoo a0cc8b9772 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:47:27 +09:00
chyoo c109f344d2 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:43:54 +09:00
chyoo 32412d922a merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:37:47 +09:00
chyoo 4afc3fc05d merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:33:33 +09:00
chyoo bf39f82698 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:10:50 +09:00
chyoo 384c66687e merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 15:05:28 +09:00
chyoo a2952a44a7 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 14:53:43 +09:00
chyoo dc683fce42 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 14:32:02 +09:00
chyoo 2a540a48b0 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 14:26:47 +09:00
chyoo cad561dfd0 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 13:56:27 +09:00
chyoo dd2fc93a59 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 13:50:25 +09:00
chyoo e1a5fd54db merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 13:23:44 +09:00
chyoo 6c14203e8f merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 13:21:39 +09:00
chyoo be3f36f6d9 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 13:09:39 +09:00
chyoo f510b1957e merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 12:54:07 +09:00
chyoo 5bb42621d0 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 11:55:56 +09:00
chyoo e3ae6e3f43 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 11:27:42 +09:00
chyoo 556f5866a7 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 11:20:20 +09:00
chyoo c7a6693ce4 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 11:05:04 +09:00
chyoo 15d993555f merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 11:01:36 +09:00
chyoo 39b55ad479 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 10:53:51 +09:00
chyoo 1b49256af6 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 10:22:15 +09:00
chyoo 81fc8f842a merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 10:16:30 +09:00
chyoo 44c6c08a02 replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 09:46:39 +09:00
chyoo 38a13f29fd replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-09 09:07:00 +09:00
chyoo 840fa0a604 replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 18:13:59 +09:00
chyoo c594c1cb85 replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 18:08:09 +09:00
chyoo e4b968e5dd replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 18:02:13 +09:00
chyoo 48b81dd5cf replace launcher common settings with internal launcher settings
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 17:51:20 +09:00
chyoo 3b471245c7 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 17:13:46 +09:00
chyoo 5ebab95a8b merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 16:39:15 +09:00
chyoo 8acbb760c8 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 15:35:57 +09:00
chyoo 8d37cf86a2 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 15:24:12 +09:00
chyoo 310daaa424 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 14:40:56 +09:00
chyoo d08a1a1a79 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-08 11:05:02 +09:00
chyoo c4c2a845ea merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 17:42:21 +09:00
chyoo e1d9d803d5 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 17:08:33 +09:00
chyoo 79e2e8443d merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 15:56:22 +09:00
chyoo 86e4330066 merge develop into release
ci/woodpecker/push/woodpecker Pipeline failed
2026-07-07 15:51:55 +09:00
chyoo 5ec75d68ab merge develop into release
ci/woodpecker/push/woodpecker Pipeline failed
2026-07-07 15:47:59 +09:00
chyoo 5bae18678c merge develop into release
ci/woodpecker/push/woodpecker Pipeline failed
2026-07-07 15:32:59 +09:00
chyoo 641166ba27 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 11:56:33 +09:00
chyoo e6bbaf4971 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 10:20:31 +09:00
chyoo 039a2ca285 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 10:18:14 +09:00
chyoo c345dade10 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 10:15:43 +09:00
chyoo 50e9b1d5ee merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:56:33 +09:00
chyoo e08ae4639b merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:51:28 +09:00
chyoo 3bb54af459 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:43:22 +09:00
chyoo 99f362fda1 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:29:49 +09:00
chyoo 622fe6e4b3 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:24:37 +09:00
chyoo bbda7887ee merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:20:10 +09:00
chyoo e2bb9075bd merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-07 09:05:21 +09:00
chyoo f6284aef79 merge develop into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 18:30:40 +09:00
chyoo a9c7a3654b Merge remote-tracking branch 'origin/develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 17:50:00 +09:00
chyoo 8c7c26e9c0 Merge remote-tracking branch 'origin/develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 17:15:57 +09:00
chyoo 070426620e Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 16:32:07 +09:00
chyoo 7e56b93f01 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 14:22:24 +09:00
chyoo 369de72e98 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 10:50:48 +09:00
chyoo 052b87e4ff Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 10:47:48 +09:00
chyoo 20d5ccef00 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 10:25:15 +09:00
chyoo b2cfd84f10 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-06 10:03:57 +09:00
chyoo 6da6e2a980 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 17:26:46 +09:00
chyoo 1118ff5663 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 17:23:46 +09:00
chyoo d529aa6f19 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 17:18:55 +09:00
chyoo e55d2f536a Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 17:00:38 +09:00
chyoo f6d9c8d0bb Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 16:30:16 +09:00
chyoo b6d1ba743b Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 16:08:04 +09:00
chyoo d5516c6cf8 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 15:33:32 +09:00
chyoo 92c0cf414b Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 15:18:14 +09:00
chyoo 718ce8d09f retry woodpecker release deploy
ci/woodpecker/push/woodpecker Pipeline failed
2026-07-03 14:58:48 +09:00
chyoo a9a9024830 Merge branch 'develop' into release 2026-07-03 14:56:01 +09:00
chyoo f7dfce5918 Merge branch 'develop' into release
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-03 14:52:00 +09:00
chyoo c6d3ff8f5c test woodpecker release deploy 2026-07-03 14:47:43 +09:00
chyoo ded18b44e5 test woodpecker release deploy 2026-07-03 14:46:01 +09:00
@@ -36,13 +36,13 @@ type ImageTags = {
artifacts?: Record<string, string>; artifacts?: Record<string, string>;
}; };
function releaseArtifacts(release?: AppRelease | null, appName?: string) { function releaseArtifacts(release?: AppRelease | null) {
const imageTags = release?.imageTags as ImageTags | null | undefined; const imageTags = release?.imageTags as ImageTags | null | undefined;
const entries = Object.entries(imageTags?.images ?? {}).filter(([, image]) => ( const entries = Object.entries(imageTags?.images ?? {}).filter(([, image]) => (
!/^(postgres|mysql|mariadb|mongo)(:|@)/i.test(image.trim()) !/^(postgres|mysql|mariadb|mongo)(:|@)/i.test(image.trim())
)); ));
if (entries.length) return entries; if (entries.length) return entries;
if (release?.artifact) return [[release.app?.name ?? appName ?? 'artifact', release.artifact]]; if (release?.artifact) return [[release.app.name, release.artifact]];
return []; return [];
} }
@@ -51,6 +51,15 @@ function firstArtifact(release: AppRelease) {
return artifacts[0]?.[1] ?? release.artifact ?? '-'; 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) { function deploymentTime(deployment: DeploymentJob) {
const value = new Date(deployment.createdAt || deployment.startedAt || deployment.finishedAt || 0).getTime(); const value = new Date(deployment.createdAt || deployment.startedAt || deployment.finishedAt || 0).getTime();
return Number.isNaN(value) ? 0 : value; return Number.isNaN(value) ? 0 : value;
@@ -107,7 +116,9 @@ export function DeploymentManagementPage() {
[deployedReleaseIdValues] [deployedReleaseIdValues]
); );
const deployableReleases = useMemo( const deployableReleases = useMemo(
() => filteredReleases.filter((release) => !deployedReleaseIds.has(release.id)), () => filteredReleases.filter((release) => (
!deployedReleaseIds.has(release.id) && hasDeployableImage(release)
)),
[filteredReleases, deployedReleaseIds] [filteredReleases, deployedReleaseIds]
); );
const filteredDeployments = useMemo( const filteredDeployments = useMemo(
@@ -263,7 +274,7 @@ export function DeploymentManagementPage() {
</div> </div>
) : null} ) : null}
{pagedDeployments.map((deployment, index) => { {pagedDeployments.map((deployment, index) => {
const artifacts = releaseArtifacts(deployment.release, deployment.app?.name); const artifacts = releaseArtifacts(deployment.release);
return ( return (
<div key={deployment.id} className="rounded-md border border-border bg-background/70 p-4"> <div key={deployment.id} className="rounded-md border border-border bg-background/70 p-4">
<div className="flex items-start justify-between gap-4"> <div className="flex items-start justify-between gap-4">
@@ -335,7 +346,7 @@ export function DeploymentManagementPage() {
</Card> </Card>
<Card className="min-w-0 overflow-hidden"> <Card className="min-w-0 overflow-hidden">
<CardHeader title="배포 가능 릴리즈" description="아직 성공 배포되지 않은 릴리즈만 표시합니다." /> <CardHeader title="배포 가능 릴리즈" description="컨테이너 이미지가 있고 아직 성공 배포되지 않은 릴리즈만 표시합니다." />
<div className="space-y-3 p-4"> <div className="space-y-3 p-4">
{deployableCards.length === 0 ? ( {deployableCards.length === 0 ? (
<div className="rounded-md border border-border px-3 py-4 text-center text-sm text-muted-foreground"> <div className="rounded-md border border-border px-3 py-4 text-center text-sm text-muted-foreground">