setup_integration_tests.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. # This script sets up integration tests which run the full stack to verify
  3. # inference locally
  4. set -e
  5. set -o pipefail
  6. REPO=$(dirname $0)/../
  7. export OLLAMA_MODELS=${REPO}/test_data/models
  8. REGISTRY_SCHEME=https
  9. REGISTRY=registry.ollama.ai
  10. TEST_MODELS=("library/orca-mini:latest" "library/llava:7b")
  11. ACCEPT_HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
  12. for model in ${TEST_MODELS[@]}; do
  13. TEST_MODEL=$(echo ${model} | cut -f1 -d:)
  14. TEST_MODEL_TAG=$(echo ${model} | cut -f2 -d:)
  15. mkdir -p ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/
  16. mkdir -p ${OLLAMA_MODELS}/blobs/
  17. echo "Pulling manifest for ${TEST_MODEL}:${TEST_MODEL_TAG}"
  18. curl -s --header "${ACCEPT_HEADER}" \
  19. -o ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} \
  20. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/manifests/${TEST_MODEL_TAG}
  21. CFG_HASH=$(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".config.digest")
  22. echo "Pulling config blob ${CFG_HASH}"
  23. curl -L -C - --header "${ACCEPT_HEADER}" \
  24. -o ${OLLAMA_MODELS}/blobs/${CFG_HASH} \
  25. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${CFG_HASH}
  26. for LAYER in $(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".layers[].digest" ) ; do
  27. echo "Pulling blob ${LAYER}"
  28. curl -L -C - --header "${ACCEPT_HEADER}" \
  29. -o ${OLLAMA_MODELS}/blobs/${LAYER} \
  30. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${LAYER}
  31. done
  32. done