setup_integration_tests.sh 1.6 KB

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