forked from phoenix-oss/llama-stack-mirror
# What does this PR do? This PR introduces a reusable GitHub Actions workflow for pulling and running an Ollama model, with caching to avoid repeated downloads. [//]: # (If resolving an issue, uncomment and update the line below) Closes: #1949 ## Test Plan 1. Trigger a workflow that uses the Ollama setup. Confirm that: - The model is pulled successfully. - It is placed in the correct directory, official at the moment (not ~ollama/.ollama/models as per comment so need to confirm this). 2. Re-run the same workflow to validate that: - The model is restored from the cache. - Execution succeeds with the cached model. [//]: # (## Documentation)
26 lines
937 B
YAML
26 lines
937 B
YAML
name: Setup Ollama
|
|
description: Start Ollama and cache model
|
|
inputs:
|
|
models:
|
|
description: Comma-separated list of models to pull
|
|
default: "llama3.2:3b-instruct-fp16,all-minilm:latest"
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install and start Ollama
|
|
shell: bash
|
|
run: |
|
|
# the ollama installer also starts the ollama service
|
|
curl -fsSL https://ollama.com/install.sh | sh
|
|
|
|
# Do NOT cache models - pulling the cache is actually slower than just pulling the model.
|
|
# It takes ~45 seconds to pull the models from the cache and unpack it, but only 30 seconds to
|
|
# pull them directly.
|
|
# Maybe this is because the cache is being pulled at the same time by all the matrix jobs?
|
|
- name: Pull requested models
|
|
if: inputs.models != ''
|
|
shell: bash
|
|
run: |
|
|
for model in $(echo "${{ inputs.models }}" | tr ',' ' '); do
|
|
ollama pull "$model"
|
|
done
|