diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index c9d4b40d..620bcf3b 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -2,6 +2,12 @@ name: Build Multi-Architecture Docker Images on: workflow_dispatch: + inputs: + update_latest: + description: 'Update latest tags (production release)' + required: false + default: false + type: boolean jobs: build: @@ -123,30 +129,41 @@ jobs: run: | VERSION=${{ steps.version.outputs.version }} + # Create versioned tags docker buildx imagetools create -t phact/openrag-backend:$VERSION \ phact/openrag-backend:$VERSION-amd64 \ phact/openrag-backend:$VERSION-arm64 - docker buildx imagetools create -t phact/openrag-backend:latest \ - phact/openrag-backend:$VERSION-amd64 \ - phact/openrag-backend:$VERSION-arm64 docker buildx imagetools create -t phact/openrag-frontend:$VERSION \ phact/openrag-frontend:$VERSION-amd64 \ phact/openrag-frontend:$VERSION-arm64 - docker buildx imagetools create -t phact/openrag-frontend:latest \ - phact/openrag-frontend:$VERSION-amd64 \ - phact/openrag-frontend:$VERSION-arm64 docker buildx imagetools create -t phact/openrag-langflow:$VERSION \ phact/openrag-langflow:$VERSION-amd64 \ phact/openrag-langflow:$VERSION-arm64 - docker buildx imagetools create -t phact/openrag-langflow:latest \ - phact/openrag-langflow:$VERSION-amd64 \ - phact/openrag-langflow:$VERSION-arm64 docker buildx imagetools create -t phact/openrag-opensearch:$VERSION \ phact/openrag-opensearch:$VERSION-amd64 \ phact/openrag-opensearch:$VERSION-arm64 - docker buildx imagetools create -t phact/openrag-opensearch:latest \ - phact/openrag-opensearch:$VERSION-amd64 \ - phact/openrag-opensearch:$VERSION-arm64 + + # Only update latest tags if version is numeric AND checkbox is checked + if [[ "$VERSION" =~ ^[0-9.-]+$ ]] && [[ "${{ github.event.inputs.update_latest }}" == "true" ]]; then + echo "Updating latest tags for production release: $VERSION" + docker buildx imagetools create -t phact/openrag-backend:latest \ + phact/openrag-backend:$VERSION-amd64 \ + phact/openrag-backend:$VERSION-arm64 + + docker buildx imagetools create -t phact/openrag-frontend:latest \ + phact/openrag-frontend:$VERSION-amd64 \ + phact/openrag-frontend:$VERSION-arm64 + + docker buildx imagetools create -t phact/openrag-langflow:latest \ + phact/openrag-langflow:$VERSION-amd64 \ + phact/openrag-langflow:$VERSION-arm64 + + docker buildx imagetools create -t phact/openrag-opensearch:latest \ + phact/openrag-opensearch:$VERSION-amd64 \ + phact/openrag-opensearch:$VERSION-arm64 + else + echo "Skipping latest tags - version: $VERSION, update_latest: ${{ github.event.inputs.update_latest }}" + fi diff --git a/frontend/components/navigation-layout.tsx b/frontend/components/navigation-layout.tsx index d7a564a7..a2fdbe8f 100644 --- a/frontend/components/navigation-layout.tsx +++ b/frontend/components/navigation-layout.tsx @@ -1,7 +1,7 @@ "use client"; import { usePathname } from "next/navigation"; -import { useGetConversationsQuery } from "@/app/api/queries/useGetConversationsQuery"; +import { useGetConversationsQuery, type ChatConversation } from "@/app/api/queries/useGetConversationsQuery"; import { KnowledgeFilterDropdown } from "@/components/knowledge-filter-dropdown"; import { ModeToggle } from "@/components/mode-toggle"; import { Navigation } from "@/components/navigation"; @@ -29,7 +29,7 @@ export function NavigationLayout({ children }: NavigationLayoutProps) { const { data: conversations = [], isLoading: isConversationsLoading } = useGetConversationsQuery(endpoint, refreshTrigger, { enabled: isOnChatPage && (isAuthenticated || isNoAuthMode), - }); + }) as { data: ChatConversation[]; isLoading: boolean }; const handleNewConversation = () => { refreshConversations(); diff --git a/frontend/src/components/layout-wrapper.tsx b/frontend/src/components/layout-wrapper.tsx index 79d4b095..5c2f0e13 100644 --- a/frontend/src/components/layout-wrapper.tsx +++ b/frontend/src/components/layout-wrapper.tsx @@ -2,7 +2,7 @@ import { Bell, Loader2 } from "lucide-react"; import { usePathname } from "next/navigation"; -import { useGetConversationsQuery } from "@/app/api/queries/useGetConversationsQuery"; +import { useGetConversationsQuery, type ChatConversation } from "@/app/api/queries/useGetConversationsQuery"; import { useGetSettingsQuery } from "@/app/api/queries/useGetSettingsQuery"; import { KnowledgeFilterPanel } from "@/components/knowledge-filter-panel"; import Logo from "@/components/logo/logo"; @@ -37,7 +37,7 @@ export function LayoutWrapper({ children }: { children: React.ReactNode }) { const { data: conversations = [], isLoading: isConversationsLoading } = useGetConversationsQuery(endpoint, refreshTrigger, { enabled: isOnChatPage && (isAuthenticated || isNoAuthMode), - }); + }) as { data: ChatConversation[]; isLoading: boolean }; const handleNewConversation = () => { refreshConversations(); diff --git a/pyproject.toml b/pyproject.toml index cc4db78a..5673adcd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrag" -version = "0.1.13" +version = "0.1.14.dev1" description = "Add your description here" readme = "README.md" requires-python = ">=3.13"