llama-stack-mirror/.github/workflows/build_playground.yml

91 lines
2.8 KiB
YAML

name: "Build and Push Playground Image"
env:
IMAGE_NAME: "jland/llama-stack-playground"
IMAGE_TAG_LATEST: "latest"
REGISTRY_URL: "quay.io" # Replace with your registry URL
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
on:
pull_request:
paths:
- 'llama_stack/distribution/ui/**'
push:
paths:
- 'llama_stack/distribution/ui/**'
tags:
- '*'
jobs:
########################################
#### Validate Code and Image Builds ####
########################################
validate-code:
name: Validate Playground Code
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: "Validate Code"
id: validate_code
run: |
cd llama_stack/distribution/ui
pip install -r requirements.txt
nohup streamlit run app.py &
sleep 10
curl -f http://localhost:8501 || exit 1
########################################
#### Validate Code and Image Builds ####
########################################
validate-image:
name: Validate Playground Image Build
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Checkout code
uses: actions/checkout@v4
# Build and Push image to registry with tag matching the Git Tag and latest
- name: Build and push
uses: docker/build-push-action@v6
with:
context: ./llama_stack/distribution/ui/
file: ./llama_stack/distribution/ui/Containerfile
push: false
tags: ${{ env.REGISTRY_URL }}/${{ env.IMAGE_NAME }}:local
ulimit: nofile=4096
validate-and-deploy-image:
name: Validate and Deploy Playground Image
runs-on: ubuntu-latest
needs: validate-code
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to Image Registry
uses: docker/login-action@v3
with:
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
registry: ${{ env.REGISTRY_URL }}
# Build and Push image to registry with tag matching the Git Tag and latest
- name: Build and push
uses: docker/build-push-action@v6
with:
context: ./llama_stack/distribution/ui/
file: ./llama_stack/distribution/ui/Containerfile
push: true
tags: ${{ env.REGISTRY_URL }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}, ${{ env.REGISTRY_URL }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_LATEST }}
ulimit: nofile=4096