pull_all_eval_docker.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. NAMESPACE=$2 # xingyaoww
  22. if [ -z "$NAMESPACE" ]; then
  23. echo "Default to namespace: xingyaoww"
  24. NAMESPACE="xingyaoww"
  25. fi
  26. if [ "$SET" == "lite" ]; then
  27. IMAGE_FILE="$(dirname "$0")/all-swebench-lite-instance-images.txt"
  28. else
  29. IMAGE_FILE="$(dirname "$0")/all-swebench-full-instance-images.txt"
  30. fi
  31. # Define a pattern based on the level
  32. case $LEVEL in
  33. base)
  34. PATTERN="sweb.base"
  35. ;;
  36. env)
  37. PATTERN="sweb.base\|sweb.env"
  38. ;;
  39. instance)
  40. PATTERN="sweb.base\|sweb.env\|sweb.eval"
  41. ;;
  42. *)
  43. echo "Invalid cache level: $LEVEL"
  44. echo "Valid levels are: base, env, instance"
  45. exit 1
  46. ;;
  47. esac
  48. echo "Pulling docker images for [$LEVEL] level"
  49. echo "Pattern: $PATTERN"
  50. echo "Image file: $IMAGE_FILE"
  51. # Read each line from the file, filter by pattern, and pull the docker image
  52. grep "$PATTERN" "$IMAGE_FILE" | while IFS= read -r image; do
  53. echo "Pulling $NAMESPACE/$image into $image"
  54. docker pull $NAMESPACE/$image
  55. # replace _s_ to __ in the image name
  56. renamed_image=$(echo "$image" | sed 's/_s_/__/g')
  57. docker tag $NAMESPACE/$image $renamed_image
  58. done