Run examples #200
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: Run examples | |
on: | |
schedule: | |
- cron: '0 1 * * *' | |
workflow_dispatch: | |
jobs: | |
tests: | |
name: Execution tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.11', '3.12', '3.13'] | |
steps: | |
# Free up some disk space | |
- name: Remove unnecessary files | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
# Set up Ollama | |
- name: Install Ollama and start server | |
shell: bash | |
run: | | |
curl -fsSL https://ollama.com/install.sh | sudo -E sh | |
- name: Pull models in examples/ | |
shell: bash | |
run: | | |
ollama pull granite3.2:2b | |
ollama pull mxbai-embed-large | |
ollama list | |
- name: Check that all required models are available | |
shell: bash | |
run: | | |
models=("mxbai-embed-large" "granite3.2:2b") | |
missing=0 | |
for model in "${models[@]}"; do | |
if ! ollama list | awk 'NR>1 {print $1}' | grep -q "$model"; then | |
echo "❌ Model $model (or substring) is missing!" | |
missing=1 | |
fi | |
done | |
if [ "$missing" -eq 1 ]; then | |
exit 1 | |
else | |
echo "✅ All expected models are available." | |
fi | |
- name: Wait for Ollama server | |
shell: bash | |
run: | | |
sleep 10 | |
time curl -i http://localhost:11434 | |
# Run tests | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
# This path is specific to Ubuntu | |
path: ${{ env.pythonLocation }} | |
# Look to see if there is a cache hit for the setup file | |
key: ${{ runner.os }}-pip-new3-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }} | |
restore-keys: | | |
${{ runner.os }}-pip-new3 | |
${{ runner.os }}-new3 | |
- name: Install dependencies | |
run: pip install --upgrade --upgrade-strategy eager .[all] | |
- name: pip list packages | |
run: pip list | |
- name: show pip dependencies | |
run: | | |
pip install pipdeptree | |
pipdeptree -fl | |
- name: run tests | |
env: | |
WATSONX_PROJECT_ID: ${{ secrets.WATSONX_PROJECT_ID }} | |
WATSONX_APIKEY: ${{ secrets.WATSONX_APIKEY }} | |
WATSONX_URL: ${{ secrets.WATSONX_URL }} | |
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | |
run: py.test -v --capture=tee-sys -rfE -s tests/test_examples_run.py |