pull_all_eval_docker.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. set -e
  3. LEVEL=$1
  4. # three levels:
  5. # - base, keyword "sweb.base"
  6. # - env, keyword "sweb.env"
  7. # - instance, keyword "sweb.eval"
  8. SET=$2
  9. if [ -z "$LEVEL" ]; then
  10. echo "Usage: $0 <cache_level> <set>"
  11. echo "cache_level: base, env, or instance"
  12. echo "set: lite, full"
  13. exit 1
  14. fi
  15. if [ -z "$SET" ]; then
  16. echo "Usage: $0 <cache_level> <set>"
  17. echo "cache_level: base, env, or instance"
  18. echo "set: lite, full, default is lite"
  19. SET="lite"
  20. fi
  21. # Check if namespace is provided via argument $3, otherwise default to 'xingyaoww'
  22. NAMESPACE=${3:-xingyaoww}
  23. echo "Using namespace: $NAMESPACE"
  24. if [ "$SET" == "lite" ]; then
  25. IMAGE_FILE="$(dirname "$0")/all-swebench-lite-instance-images.txt"
  26. else
  27. IMAGE_FILE="$(dirname "$0")/all-swebench-full-instance-images.txt"
  28. fi
  29. # Define a pattern based on the level
  30. case $LEVEL in
  31. base)
  32. PATTERN="sweb.base"
  33. ;;
  34. env)
  35. PATTERN="sweb.base\|sweb.env"
  36. ;;
  37. instance)
  38. PATTERN="sweb.base\|sweb.env\|sweb.eval"
  39. ;;
  40. *)
  41. echo "Invalid cache level: $LEVEL"
  42. echo "Valid levels are: base, env, instance"
  43. exit 1
  44. ;;
  45. esac
  46. echo "Pulling docker images for [$LEVEL] level"
  47. echo "Pattern: $PATTERN"
  48. echo "Image file: $IMAGE_FILE"
  49. # Read each line from the file, filter by pattern, and pull the docker image
  50. grep "$PATTERN" "$IMAGE_FILE" | while IFS= read -r image; do
  51. echo "Pulling $NAMESPACE/$image into $image"
  52. docker pull $NAMESPACE/$image
  53. # replace _s_ to __ in the image name
  54. renamed_image=$(echo "$image" | sed 's/_s_/__/g')
  55. docker tag $NAMESPACE/$image $renamed_image
  56. done