setup_integration_tests.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  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_MODEL=library/orca-mini
  11. TEST_MODEL_TAG=latest
  12. ACCEPT_HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
  13. mkdir -p ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/
  14. mkdir -p ${OLLAMA_MODELS}/blobs/
  15. echo "Pulling manifest for ${TEST_MODEL}:${TEST_MODEL_TAG}"
  16. curl -s --header "${ACCEPT_HEADER}" \
  17. -o ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} \
  18. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/manifests/${TEST_MODEL_TAG}
  19. CFG_HASH=$(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".config.digest")
  20. echo "Pulling config blob ${CFG_HASH}"
  21. curl -L -C - --header "${ACCEPT_HEADER}" \
  22. -o ${OLLAMA_MODELS}/blobs/${CFG_HASH} \
  23. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${CFG_HASH}
  24. for LAYER in $(cat ${OLLAMA_MODELS}/manifests/${REGISTRY}/${TEST_MODEL}/${TEST_MODEL_TAG} | jq -r ".layers[].digest" ) ; do
  25. echo "Pulling blob ${LAYER}"
  26. curl -L -C - --header "${ACCEPT_HEADER}" \
  27. -o ${OLLAMA_MODELS}/blobs/${LAYER} \
  28. ${REGISTRY_SCHEME}://${REGISTRY}/v2/${TEST_MODEL}/blobs/${LAYER}
  29. done