create a github action for triggering client-sdk tests on new pull-request #52
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: auto-tests | |
on: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
commit_sha: | |
description: 'Specific Commit SHA to trigger on' | |
required: false | |
default: $GITHUB_SHA # default to the last commit of $GITHUB_REF branch | |
jobs: | |
test-llama-stack-as-library: | |
runs-on: ubuntu-latest | |
env: | |
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }} | |
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }} | |
TAVILY_SEARCH_API_KEY: ${{ secrets.TAVILY_SEARCH_API_KEY }} | |
strategy: | |
matrix: | |
provider: [fireworks, together] | |
# Dumb approach to restrict the users who trigger the gh actions | |
# if: contains(github.repository_owner, github.actor) | |
steps: | |
- name: Get repo owners | |
uses: octokit/[email protected] | |
with: | |
route: GET /repos/${{ github.repository }}/codeowners/ | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.commit_sha }} | |
- name: Read CODEOWNERS file | |
run: | | |
cat .github/CODEOWNERS | |
- name: Echo commit SHA | |
run: | | |
echo "Triggered on commit SHA: ${{ github.event.inputs.commit_sha }}" | |
git rev-parse HEAD | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt pytest | |
pip install -e . | |
- name: Build providers | |
run: | | |
llama stack build --template ${{ matrix.provider }} --image-type venv | |
- name: Install the latest llama-stack-client & llama-models packages | |
run: | | |
pip install -e git+https://github.com/meta-llama/llama-stack-client-python.git#egg=llama-stack-client | |
pip install -e git+https://github.com/meta-llama/llama-models.git#egg=llama-models | |
- name: Run client-sdk test | |
working-directory: "${{ github.workspace }}" | |
env: | |
REPORT_OUTPUT: md_report.md | |
shell: bash | |
run: | | |
pip install --upgrade pytest-md-report | |
echo "REPORT_FILE=${REPORT_OUTPUT}" >> "$GITHUB_ENV" | |
export INFERENCE_MODEL=meta-llama/Llama-3.1-8B-Instruct | |
LLAMA_STACK_CONFIG=./llama_stack/templates/${{ matrix.provider }}/run.yaml pytest --md-report --md-report-verbose=1 ./tests/client-sdk/inference/test_inference.py --md-report-output "$REPORT_OUTPUT" | |
- name: Output reports to the job summary | |
if: always() | |
shell: bash | |
run: | | |
if [ -f "$REPORT_FILE" ]; then | |
echo "<details><summary> Test Report for ${{ matrix.provider }} </summary>" >> $GITHUB_STEP_SUMMARY | |
echo "" >> $GITHUB_STEP_SUMMARY | |
cat "$REPORT_FILE" >> $GITHUB_STEP_SUMMARY | |
echo "" >> $GITHUB_STEP_SUMMARY | |
echo "</details>" >> $GITHUB_STEP_SUMMARY | |
fi |