drop changes to action yaml config

This commit is contained in:
Hardik Shah 2025-01-15 19:14:20 -08:00
parent 442c4960ba
commit 44f2c5a026

View file

@ -1,219 +1,212 @@
name: Publish Python 🐍 distribution 📦 to TestPyPI
on:
push:
# workflow_dispatch: # Keep manual trigger
# inputs:
# version:
# description: 'Version number (e.g. 0.0.63.dev20250111)'
# required: true
# type: string
# schedule:
# - cron: "0 0 * * *" # Run every day at midnight
workflow_dispatch: # Keep manual trigger
inputs:
version:
description: 'Version number (e.g. 0.0.63.dev20250111)'
required: true
type: string
schedule:
- cron: "0 0 * * *" # Run every day at midnight
jobs:
# trigger-client-and-models-build:
# name: Trigger llama-stack-client and llama-models build
# runs-on: ubuntu-latest
# outputs:
# version: ${{ steps.version.outputs.version }}
# client_run_id: ${{ steps.trigger-client.outputs.workflow_id }}
# model_run_id: ${{ steps.trigger-models.outputs.workflow_id }}
# steps:
# - uses: actions/checkout@v4
# with:
# persist-credentials: false
# # - name: Get date
# id: date
# run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
# - name: Compute version based on dispatch event
# id: version
# run: |
# # Read base version from pyproject.toml
# version=$(sed -n 's/.*version="\([^"]*\)".*/\1/p' setup.py)
# if [ "${{ github.event_name }}" = "schedule" ]; then
# echo "version=${version}.dev${{ steps.date.outputs.date }}" >> $GITHUB_OUTPUT
# elif [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
# echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
# else
# echo "version=${version}.dev$(shuf -i 10000000-99999999 -n 1)" >> $GITHUB_OUTPUT
# fi
# - name: Trigger llama-stack-client workflow
# id: trigger-client
# run: |
# response=$(curl -X POST https://api.github.com/repos/meta-llama/llama-stack-client-python/dispatches \
# -H 'Accept: application/vnd.github.everest-preview+json' \
# -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# --data "{\"event_type\": \"build-client-package\", \"client_payload\": {\"source\": \"llama-stack-nightly\", \"version\": \"${{ steps.version.outputs.version }}\"}}" \
# -w "\n%{http_code}")
# http_code=$(echo "$response" | tail -n1)
# if [ "$http_code" != "204" ]; then
# echo "Failed to trigger client workflow"
# exit 1
# fi
# # Get the run ID of the triggered workflow
# sleep 5 # Wait for workflow to be created
# run_id=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs?event=repository_dispatch" \
# | jq '.workflow_runs[0].id')
# echo "workflow_id=$run_id" >> $GITHUB_OUTPUT
# - name: Trigger llama-models workflow
# id: trigger-models
# run: |
# response=$(curl -X POST https://api.github.com/repos/meta-llama/llama-models/dispatches \
# -H 'Accept: application/vnd.github.everest-preview+json' \
# -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# --data "{\"event_type\": \"build-models-package\", \"client_payload\": {\"source\": \"llama-stack-nightly\", \"version\": \"${{ steps.version.outputs.version }}\"}}" \
# -w "\n%{http_code}")
# http_code=$(echo "$response" | tail -n1)
# if [ "$http_code" != "204" ]; then
# echo "Failed to trigger models workflow"
# exit 1
# fi
# # Get the run ID of the triggered workflow
# sleep 5 # Wait for workflow to be created
# run_id=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-models/actions/runs?event=repository_dispatch" \
# | jq '.workflow_runs[0].id')
# echo "workflow_id=$run_id" >> $GITHUB_OUTPUT
# wait-for-workflows:
# name: Wait for triggered workflows
# needs: trigger-client-and-models-build
# runs-on: ubuntu-latest
# steps:
# - name: Wait for client workflow
# run: |
# while true; do
# status=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs/${{ needs.trigger-client-and-models-build.outputs.client_run_id }}" \
# | jq -r '.status')
# conclusion=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs/${{ needs.trigger-client-and-models-build.outputs.client_run_id }}" \
# | jq -r '.conclusion')
# echo "llama-stack-client-python workflow status: $status, conclusion: $conclusion"
# if [ "$status" = "completed" ]; then
# if [ "$conclusion" != "success" ]; then
# echo "llama-stack-client-python workflow failed"
# exit 1
# fi
# break
# fi
# sleep 10
# done
# - name: Wait for models workflow
# run: |
# while true; do
# status=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-models/actions/runs/${{ needs.trigger-client-and-models-build.outputs.model_run_id }}" \
# | jq -r '.status')
# conclusion=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
# "https://api.github.com/repos/meta-llama/llama-models/actions/runs/${{ needs.trigger-client-and-models-build.outputs.model_run_id }}" \
# | jq -r '.conclusion')
# echo "llama-models workflow status: $status, conclusion: $conclusion"
# if [ "$status" = "completed" ]; then
# if [ "$conclusion" != "success" ]; then
# echo "llama-models workflow failed"
# exit 1
# fi
# break
# fi
# sleep 10
# done
# build:
# name: Build distribution 📦
# needs:
# - wait-for-workflows
# - trigger-client-and-models-build
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# persist-credentials: false
# - name: Get date
# id: date
# run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
# - name: Update version for nightly
# run: |
# sed -i 's/version="\([^"]*\)"/version="${{ needs.trigger-client-and-models-build.outputs.version }}"/' setup.py
# sed -i 's/llama-stack-client>=\([^"]*\)/llama-stack-client==${{ needs.trigger-client-and-models-build.outputs.version }}/' requirements.txt
# sed -i 's/llama-models>=\([^"]*\)/llama-models==${{ needs.trigger-client-and-models-build.outputs.version }}/' requirements.txt
# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version: "3.11"
# - name: Install pypa/build
# run: >-
# python3 -m
# pip install
# build
# --user
# - name: Build a binary wheel and a source tarball
# run: python3 -m build
# - name: Store the distribution packages
# uses: actions/upload-artifact@v4
# with:
# name: python-package-distributions
# path: dist/
# publish-to-testpypi:
# name: Publish Python 🐍 distribution 📦 to TestPyPI
# needs:
# - build
# runs-on: ubuntu-latest
# environment:
# name: testrelease
# url: https://test.pypi.org/p/llama-stack
# permissions:
# id-token: write # IMPORTANT: mandatory for trusted publishing
# steps:
# - name: Download all the dists
# uses: actions/download-artifact@v4
# with:
# name: python-package-distributions
# path: dist/
# - name: Publish distribution 📦 to TestPyPI
# uses: pypa/gh-action-pypi-publish@release/v1
# with:
# repository-url: https://test.pypi.org/legacy/
test-published-package:
name: Test published package
# needs:
# - publish-to-testpypi
# - trigger-client-and-models-build
trigger-client-and-models-build:
name: Trigger llama-stack-client and llama-models build
runs-on: ubuntu-latest
env:
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
TAVILY_SEARCH_API_KEY: ${{ secrets.TAVILY_SEARCH_API_KEY }}
outputs:
version: ${{ steps.version.outputs.version }}
client_run_id: ${{ steps.trigger-client.outputs.workflow_id }}
model_run_id: ${{ steps.trigger-models.outputs.workflow_id }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Get date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
- name: Compute version based on dispatch event
id: version
run: |
# Read base version from pyproject.toml
version=$(sed -n 's/.*version="\([^"]*\)".*/\1/p' setup.py)
if [ "${{ github.event_name }}" = "schedule" ]; then
echo "version=${version}.dev${{ steps.date.outputs.date }}" >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
else
echo "version=${version}.dev$(shuf -i 10000000-99999999 -n 1)" >> $GITHUB_OUTPUT
fi
- name: Trigger llama-stack-client workflow
id: trigger-client
run: |
response=$(curl -X POST https://api.github.com/repos/meta-llama/llama-stack-client-python/dispatches \
-H 'Accept: application/vnd.github.everest-preview+json' \
-H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
--data "{\"event_type\": \"build-client-package\", \"client_payload\": {\"source\": \"llama-stack-nightly\", \"version\": \"${{ steps.version.outputs.version }}\"}}" \
-w "\n%{http_code}")
http_code=$(echo "$response" | tail -n1)
if [ "$http_code" != "204" ]; then
echo "Failed to trigger client workflow"
exit 1
fi
# Get the run ID of the triggered workflow
sleep 5 # Wait for workflow to be created
run_id=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs?event=repository_dispatch" \
| jq '.workflow_runs[0].id')
echo "workflow_id=$run_id" >> $GITHUB_OUTPUT
- name: Trigger llama-models workflow
id: trigger-models
run: |
response=$(curl -X POST https://api.github.com/repos/meta-llama/llama-models/dispatches \
-H 'Accept: application/vnd.github.everest-preview+json' \
-H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
--data "{\"event_type\": \"build-models-package\", \"client_payload\": {\"source\": \"llama-stack-nightly\", \"version\": \"${{ steps.version.outputs.version }}\"}}" \
-w "\n%{http_code}")
http_code=$(echo "$response" | tail -n1)
if [ "$http_code" != "204" ]; then
echo "Failed to trigger models workflow"
exit 1
fi
# Get the run ID of the triggered workflow
sleep 5 # Wait for workflow to be created
run_id=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-models/actions/runs?event=repository_dispatch" \
| jq '.workflow_runs[0].id')
echo "workflow_id=$run_id" >> $GITHUB_OUTPUT
wait-for-workflows:
name: Wait for triggered workflows
needs: trigger-client-and-models-build
runs-on: ubuntu-latest
steps:
- name: Wait for client workflow
run: |
while true; do
status=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs/${{ needs.trigger-client-and-models-build.outputs.client_run_id }}" \
| jq -r '.status')
conclusion=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-stack-client-python/actions/runs/${{ needs.trigger-client-and-models-build.outputs.client_run_id }}" \
| jq -r '.conclusion')
echo "llama-stack-client-python workflow status: $status, conclusion: $conclusion"
if [ "$status" = "completed" ]; then
if [ "$conclusion" != "success" ]; then
echo "llama-stack-client-python workflow failed"
exit 1
fi
break
fi
sleep 10
done
- name: Wait for models workflow
run: |
while true; do
status=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-models/actions/runs/${{ needs.trigger-client-and-models-build.outputs.model_run_id }}" \
| jq -r '.status')
conclusion=$(curl -s -H "authorization: Bearer ${{ secrets.PAT_TOKEN }}" \
"https://api.github.com/repos/meta-llama/llama-models/actions/runs/${{ needs.trigger-client-and-models-build.outputs.model_run_id }}" \
| jq -r '.conclusion')
echo "llama-models workflow status: $status, conclusion: $conclusion"
if [ "$status" = "completed" ]; then
if [ "$conclusion" != "success" ]; then
echo "llama-models workflow failed"
exit 1
fi
break
fi
sleep 10
done
build:
name: Build distribution 📦
needs:
- wait-for-workflows
- trigger-client-and-models-build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Get date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
- name: Update version for nightly
run: |
sed -i 's/version="\([^"]*\)"/version="${{ needs.trigger-client-and-models-build.outputs.version }}"/' setup.py
sed -i 's/llama-stack-client>=\([^"]*\)/llama-stack-client==${{ needs.trigger-client-and-models-build.outputs.version }}/' requirements.txt
sed -i 's/llama-models>=\([^"]*\)/llama-models==${{ needs.trigger-client-and-models-build.outputs.version }}/' requirements.txt
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/
publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs:
- build
runs-on: ubuntu-latest
environment:
name: testrelease
url: https://test.pypi.org/p/llama-stack
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
test-published-package:
name: Test published package
needs:
- publish-to-testpypi
- trigger-client-and-models-build
runs-on: ubuntu-latest
steps:
- name: Install the package
run: |
max_attempts=6
attempt=1
while [ $attempt -le $max_attempts ]; do
echo "Attempt $attempt of $max_attempts to install package..."
if pip install --no-cache --index-url https://pypi.org/simple/ --extra-index-url https://test.pypi.org/simple/ llama-stack==0.0.63.dev86738855; then
if pip install --no-cache --index-url https://pypi.org/simple/ --extra-index-url https://test.pypi.org/simple/ llama-stack==${{ needs.trigger-client-and-models-build.outputs.version }}; then
echo "Package installed successfully"
break
fi
@ -235,12 +228,5 @@ jobs:
llama stack list-apis
llama stack list-providers inference
llama stack list-providers telemetry
- name: Test Notebook
run: |
pip install pytest nbval
pwd
ls
pytest -v -s --nbval-lax ./docs/notebooks/Llama_Stack_Building_AI_Applications.ipynb
# TODO: add trigger for integration test workflow & docker builds