model_servers workflow renamed #266
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Sample applications build,test,push images | |
# Build image once the PR is merged to main branch. | |
on: | |
pull_request: | |
workflow_dispatch: | |
branches: [ main ] | |
push: | |
workflow_dispatch: | |
branches: [main] | |
permissions: write-all | |
jobs: | |
build: | |
runs-on: ubuntu-latest # windows-latest || macos-latest | |
env: | |
REGISTRY: quay.io/redhat-et | |
#GH_REGISTRY: ghcr.io | |
# github.repository as <account>/<repo> | |
MODEL_SERVICE_IMAGE: locallm-model-service | |
CHATBOT_IMAGE: locallm-chatbot | |
SUMMARIZER_IMAGE: locallm-text-summarizer | |
CODEGEN_IMAGE: locallm-codegen | |
RAG_IMAGE: locallm-rag | |
CHROMADB_IMAGE: locallm-chromadb | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. | |
- name: Get changed model-service files | |
id: changed-files-model-service | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
model_servers/llamacpp_python/base/** | |
- name: Get changed rag files | |
id: changed-files-rag | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
recipes/natural_language_processing/rag/** | |
- name: Get changed summarizer files | |
id: changed-files-summarizer | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
recipes/natural_language_processing/summarizer/** | |
- name: Get changed code-generation files | |
id: changed-files-codegen | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
recipes/natural_language_processing/code-generation/** | |
- name: Get changed chatbot files | |
id: changed-files-chatbot | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
recipes/natural_language_processing/chatbot/** | |
- name: Get changed chromadb files | |
id: changed-files-chromadb | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
vector_dbs/chromadb/** | |
- name: Install qemu dependency | |
if: steps.changed-files-model-service.outputs.any_changed == 'true' || steps.changed-files-chatbot.outputs.any_changed == 'true' || steps.changed-files-summarizer.outputs.any_changed == 'true' || steps.changed-files-rag.outputs.any_changed == 'true' || steps.changed-files-codegen.outputs.any_changed == 'true' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y qemu-user-static | |
- name: Login Quay Container registry | |
if: > | |
(steps.changed-files-model-service.outputs.any_changed == 'true' || steps.changed-files-chatbot.outputs.any_changed == 'true' || steps.changed-files-summarizer.outputs.any_changed == 'true' || steps.changed-files-rag.outputs.any_changed == 'true' || steps.changed-files-chromadb.outputs.any_changed == 'true' || steps.changed-files-codegen.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/podman-login@v1 | |
with: | |
registry: quay.io | |
username: ${{ secrets.REGISTRY_USER }} | |
password: ${{ secrets.REGISTRY_PASSWORD }} | |
- name: Build model-service | |
if: steps.changed-files-model-service.outputs.any_changed == 'true' | |
id: build_model_service_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
image: ${{ env.MODEL_SERVICE_IMAGE }} | |
tags: latest ${{ github.sha }} | |
platforms: linux/amd64, linux/arm64 | |
context: model_servers/llamacpp_python | |
containerfiles: ./model_servers/llamacpp_python/base/Containerfile | |
- name: Push model-service image | |
id: push_model_service | |
if: > | |
(steps.changed-files-model-service.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_model_service_multiplatform.outputs.image }} | |
tags: ${{ steps.build_model_service_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |
- name: Build chatbot | |
id: build_chatbot_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
if: steps.changed-files-chatbot.outputs.any_changed == 'true' | |
with: | |
image: ${{ env.CHATBOT_IMAGE }} | |
tags: latest ${{ github.sha }} | |
platforms: linux/amd64, linux/arm64 | |
context: recipes/natural_language_processing/chatbot | |
containerfiles: | | |
recipes/natural_language_processing/chatbot/builds/Containerfile | |
- name: Push chatbot image | |
id: push_chatbot | |
if: > | |
(steps.changed-files-chatbot.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_chatbot_multiplatform.outputs.image }} | |
tags: ${{ steps.build_chatbot_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |
- name: Build code-generation | |
if: steps.changed-files-codegen.outputs.any_changed == 'true' | |
id: build_codegen_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
image: ${{ env.CODEGEN_IMAGE }} | |
tags: latest ${{ github.sha }} | |
platforms: linux/amd64, linux/arm64 | |
context: recipes/natural_language_processing/code-generation | |
containerfiles: | | |
./recipes/natural_language_processing/code-generation/builds/Containerfile | |
- name: Push code-generation image | |
id: push_codegen | |
if: > | |
(steps.changed-files-codegen.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_codegen_multiplatform.outputs.image }} | |
tags: ${{ steps.build_codegen_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |
- name: Build summarizer | |
if: steps.changed-files-summarizer.outputs.any_changed == 'true' | |
id: build_summarizer_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
image: ${{ env.SUMMARIZER_IMAGE }} | |
tags: latest ${{ github.sha }} | |
platforms: linux/amd64, linux/arm64 | |
context: recipes/natural_language_processing/summarizer | |
containerfiles: | | |
./recipes/natural_language_processing/summarizer/builds/Containerfile | |
- name: Push summarizer image | |
id: push_summarizer | |
if: > | |
(steps.changed-files-summarizer.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_summarizer_multiplatform.outputs.image }} | |
tags: ${{ steps.build_summarizer_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |
- name: Build RAG | |
if: steps.changed-files-rag.outputs.any_changed == 'true' | |
id: build_rag_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
image: ${{ env.RAG_IMAGE }} | |
tags: latest ${{ github.sha }} | |
# TODO: add amd64 | |
platforms: linux/arm64 | |
context: recipes/natural_language_processing/rag | |
containerfiles: | | |
./recipes/natural_language_processing/rag/builds/Containerfile | |
- name: Push rag image | |
id: push_rag | |
if: > | |
(steps.changed-files-rag.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_rag_multiplatform.outputs.image }} | |
tags: ${{ steps.build_rag_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |
- name: Build chromadb | |
if: steps.changed-files-chromadb.outputs.any_changed == 'true' | |
id: build_chromadb_multiplatform | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
image: ${{ env.CHROMADB_IMAGE }} | |
tags: latest ${{ github.sha }} | |
# TODO: add amd64 | |
platforms: linux/arm64, linux/amd64 | |
context: vector_dbs/chromadb | |
containerfiles: | | |
./vector_dbs/chromadb/Containerfile | |
- name: Push chromadb image | |
id: push_chromadb | |
if: > | |
(steps.changed-files-chromadb.outputs.any_changed == 'true') && | |
(github.event_name == 'push' || github.event_name == 'schedule') && | |
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
image: ${{ steps.build_chromadb_multiplatform.outputs.image }} | |
tags: ${{ steps.build_chromadb_multiplatform.outputs.tags }} | |
registry: ${{ env.REGISTRY }} | |