From 90ba91b784ef2fa27f98d58b266ec465a76e956d Mon Sep 17 00:00:00 2001 From: gunshiz Date: Wed, 7 Oct 2026 19:24:45 +0700 Subject: [PATCH] feat : upa --- .gitea/workflows/ci.yml | 22 ------------- components/public/stygian-guide.tsx | 36 ++++++++++----------- components/stygian/stygian-boss-display.tsx | 2 +- tests/deployment-contract.test.ts | 5 +-- 4 files changed, 20 insertions(+), 45 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 407990e..037fd02 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -188,25 +188,3 @@ jobs: kubectl --kubeconfig "$KUBECONFIG" --namespace "$DEPLOY_NAMESPACE" rollout status \ deployment/buzz-sheet-discord-worker \ --timeout=10m - - - name: Publish deployment result - if: always() - continue-on-error: true - env: - DEPLOYMENT_WEBHOOK_SECRET: ${{ secrets.DEPLOYMENT_WEBHOOK_SECRET }} - DEPLOYMENT_JOB_STATUS: ${{ job.status }} - REVISION: ${{ gitea.sha }} - run: | - if [ -z "$DEPLOYMENT_WEBHOOK_SECRET" ]; then - echo "DEPLOYMENT_WEBHOOK_SECRET is not configured; skipping notification" - exit 0 - fi - status=failed - if [ "$DEPLOYMENT_JOB_STATUS" = "success" ]; then - status=ready - fi - curl --fail-with-body --silent --show-error --retry 3 \ - --header "Authorization: Bearer $DEPLOYMENT_WEBHOOK_SECRET" \ - --header "Content-Type: application/json" \ - --data "{\"deploymentId\":\"$REVISION\",\"status\":\"$status\"}" \ - "$BASE_URL/api/deployments/status" diff --git a/components/public/stygian-guide.tsx b/components/public/stygian-guide.tsx index 2477eb1..b20ef48 100644 --- a/components/public/stygian-guide.tsx +++ b/components/public/stygian-guide.tsx @@ -1,7 +1,6 @@ import Image from "@/components/ui/resilient-image"; import Link from "next/link"; -import { TermDetail } from "@/components/public/term-detail"; import { Badge } from "@/components/ui/badge"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { buttonVariants } from "@/components/ui/button"; @@ -50,21 +49,16 @@ function RecommendationIcon({ item, catalog, teamLayout = false }: { item: Item; if (item.kind === "character") { const hasEquipment = Boolean(value.weapon || value.artifact); return ( -
-
-
- {value.imageUrl ? {value.name} : null} +
+
+
+ {value.imageUrl ? {value.name} : null}
- {hasEquipment ?
- {value.weapon ?
{value.weapon.name}
: null} - {value.artifact ?
{value.artifact.name}
: null} + {hasEquipment ?
+ {value.weapon ? {value.weapon.name} : null} + {value.artifact ? {value.artifact.name} : null}
: null}
- {teamLayout &&

{value.name}

} - {teamLayout && hasEquipment && } {teamLayout ? item.constellationLevel !== null || value.weapon && value.refinement ?
{item.constellationLevel !== null ? C{item.constellationLevel} : null} {value.weapon && value.refinement ? R{value.refinement} : null} @@ -74,9 +68,15 @@ function RecommendationIcon({ item, catalog, teamLayout = false }: { item: Item; } return (
-
- {value.imageUrl ? {value.name} : null} -
+ {item.kind === "weapon" || item.kind === "artifact" ? ( + + {value.imageUrl ? {value.name} : null} + + ) : ( +
+ {value.imageUrl ? {value.name} : null} +
+ )} {value.name}
); @@ -104,9 +104,9 @@ function BossCard({ schedule, level, position, catalog }: { schedule: Schedule;

ทีมแนะนำ

{teams.length ?
{teams.map((team) => ( -
+
{team.items.slice(0, 4).map((item) => )} - {Array.from({ length: Math.max(0, 4 - team.items.length) }, (_, index) => :

ยังไม่มีทีมแนะนำสำหรับบอสนี้ในระดับที่เลือก

} diff --git a/components/stygian/stygian-boss-display.tsx b/components/stygian/stygian-boss-display.tsx index 9623ab1..64ab05e 100644 --- a/components/stygian/stygian-boss-display.tsx +++ b/components/stygian/stygian-boss-display.tsx @@ -137,7 +137,7 @@ export function StygianBossCard({ {children} - ข้อมูลและกลไกของบอส + Boss Information & Mechanics { expect(route).toContain('"deployment-status"'); }); - it("announces deployment lifecycle results without blocking releases", async () => { + it("announces incoming deployments without blocking releases", async () => { const [workflow, deployment] = await Promise.all([ repositoryFile(".gitea/workflows/ci.yml"), repositoryFile("k8s/base/deployment.yaml"), ]); expect(workflow).toContain("Announce incoming deployment"); - expect(workflow).toContain("Publish deployment result"); - expect(workflow).toContain("if: always()"); expect(workflow).toContain("continue-on-error: true"); expect(workflow).toContain('status\\":\\"deploying'); - expect(workflow).toContain("DEPLOYMENT_JOB_STATUS"); expect(workflow).toContain("/api/deployments/status"); expect(deployment).toContain("DEPLOYMENT_WEBHOOK_SECRET"); expect(deployment).toContain("optional: true");