name: Update quay.io/ai-lab images with manual trigger on: workflow_dispatch: env: REGISTRY: quay.io/ai-lab CHATBOT_IMAGE_NAME: chatbot CODEGEN_IMAGE_NAME: codegen SUMMARIZER_IMAGE_NAME: summarizer LLAMACPP_PYTHON_IMAGE_NAME: llamacpp_python LLAMACPP_PYTHON_VULKAN_IMAGE_NAME: llamacpp_python_vulkan LLAMACPP_PYTHON_CUDA_IMAGE_NAME: llamacpp_python_cuda CHROMADB_IMAGE_NAME: chromadb RAG_IMAGE_NAME: rag jobs: build-and-push-llamacpp-python-cuda-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - name: Remove unnecessary files run: | sudo rm -rf /usr/share/dotnet sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4.1.7 - name: Build llamacpp_python cuda id: build_llamacpp_python_cuda uses: redhat-actions/buildah-build@v2 with: image: ${{ env.LLAMACPP_PYTHON_CUDA_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64 containerfiles: ./model_servers/llamacpp_python/cuda/Containerfile context: model_servers/llamacpp_python - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push llamacpp_python cuda image id: push_llamacpp_python_cuda uses: redhat-actions/push-to-registry@v2 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_llamacpp_python_cuda.outputs.image }} tags: ${{ steps.build_llamacpp_python_cuda.outputs.tags }} build-and-push-llamacpp-python-vulkan-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - name: Remove unnecessary files run: | sudo rm -rf /usr/share/dotnet sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build llamacpp_python vulkan id: build_llamacpp_python_vulkan uses: redhat-actions/buildah-build@v2 with: image: ${{ env.LLAMACPP_PYTHON_VULKAN_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/arm64 containerfiles: ./model_servers/llamacpp_python/vulkan/Containerfile context: model_servers/llamacpp_python - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push llamacpp_python vulkan image id: push_llamacpp_python_vulkan uses: redhat-actions/push-to-registry@v2 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_llamacpp_python_vulkan.outputs.image }} tags: ${{ steps.build_llamacpp_python_vulkan.outputs.tags }} build-and-push-llamacpp-python-base-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - name: Remove unnecessary files run: | sudo rm -rf /usr/share/dotnet sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build llamacpp_python base id: build_llamacpp_python_base uses: redhat-actions/buildah-build@v2 with: image: ${{ env.LLAMACPP_PYTHON_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 containerfiles: ./model_servers/llamacpp_python/base/Containerfile context: model_servers/llamacpp_python - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push llamacpp_python image id: push_llamacpp_python_base uses: redhat-actions/push-to-registry@v2 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_llamacpp_python_base.outputs.image }} tags: ${{ steps.build_llamacpp_python_base.outputs.tags }} build-and-push-rag-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - name: Remove unnecessary files run: | sudo rm -rf /usr/share/dotnet sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build rag id: build_rag uses: redhat-actions/buildah-build@v2 with: image: ${{ env.RAG_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 containerfiles: ./recipes/natural_language_processing/rag/app/Containerfile context: recipes/natural_language_processing/rag/app - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push rag image id: push_rag uses: redhat-actions/push-to-registry@v2 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_rag.outputs.image }} tags: ${{ steps.build_rag.outputs.tags }} build-and-push-chromadb-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build chromadb id: build_chromadb uses: redhat-actions/buildah-build@v2 with: image: ${{ env.CHROMADB_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 context: vector_dbs/chromadb containerfiles: ./vector_dbs/chromadb/Containerfile - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push chromadb image id: push_chromadb uses: redhat-actions/push-to-registry@v2 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_chromadb.outputs.image }} tags: ${{ steps.build_chromadb.outputs.tags }} build-and-push-codegen-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build codegen image id: build_codegen_image uses: redhat-actions/buildah-build@v2.13 with: image: ${{ env.CODEGEN_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 containerfiles: ./recipes/natural_language_processing/codegen/app/Containerfile context: recipes/natural_language_processing/codegen/app - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push codegen image id: push_codegen_image uses: redhat-actions/push-to-registry@v2.8 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_codegen_image.outputs.image }} tags: ${{ steps.build_codegen_image.outputs.tags }} build-and-push-chatbot-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build chatbot image id: build_chatbot_image uses: redhat-actions/buildah-build@v2.13 with: image: ${{ env.CHATBOT_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 containerfiles: ./recipes/natural_language_processing/chatbot/app/Containerfile context: recipes/natural_language_processing/chatbot/app - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push chatbot image id: push_chatbot_image uses: redhat-actions/push-to-registry@v2.8 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_chatbot_image.outputs.image }} tags: ${{ steps.build_chatbot_image.outputs.tags }} build-and-push-summarizer-image: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - uses: actions/checkout@v4.1.7 # required for multi-arch builds - name: Install qemu dependency run: | sudo apt-get update sudo apt-get install -y qemu-user-static - name: Build summarizer image id: build_summarizer_image uses: redhat-actions/buildah-build@v2.13 with: image: ${{ env.SUMMARIZER_IMAGE_NAME }} tags: latest ${{ github.sha }} platforms: linux/amd64, linux/arm64 containerfiles: ./recipes/natural_language_processing/summarizer/app/Containerfile context: recipes/natural_language_processing/summarizer/app - name: Login to quay.io uses: redhat-actions/podman-login@v1 with: registry: quay.io username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Push summarizer image id: push_summarizer_image uses: redhat-actions/push-to-registry@v2.8 with: registry: ${{ env.REGISTRY }} image: ${{ steps.build_summarizer_image.outputs.image }} tags: ${{ steps.build_summarizer_image.outputs.tags }}