yuccaaa commited on
Commit
f19033f
·
verified ·
1 Parent(s): a8ea4bb

Upload ms-swift/.dev_scripts/dockerci.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. ms-swift/.dev_scripts/dockerci.sh +88 -0
ms-swift/.dev_scripts/dockerci.sh ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ MODELSCOPE_CACHE_DIR_IN_CONTAINER=/modelscope_cache
3
+ CODE_DIR=$PWD
4
+ CODE_DIR_IN_CONTAINER=/ms-swift
5
+ echo "$USER"
6
+ gpus='0,1 2,3'
7
+ cpu_sets='0-15 16-31'
8
+ cpu_sets_arr=($cpu_sets)
9
+ is_get_file_lock=false
10
+ CI_COMMAND=${CI_COMMAND:-bash .dev_scripts/ci_container_test.sh python tests/run.py --parallel 2 --run_config tests/run_config.yaml}
11
+ echo "ci command: $CI_COMMAND"
12
+ PR_CHANGED_FILES="${PR_CHANGED_FILES:-}"
13
+ echo "PR modified files: $PR_CHANGED_FILES"
14
+ PR_CHANGED_FILES=${PR_CHANGED_FILES//[ ]/#}
15
+ echo "PR_CHANGED_FILES: $PR_CHANGED_FILES"
16
+ idx=0
17
+ for gpu in $gpus
18
+ do
19
+ exec {lock_fd}>"/tmp/gpu$gpu" || exit 1
20
+ flock -n "$lock_fd" || { echo "WARN: gpu $gpu is in use!" >&2; idx=$((idx+1)); continue; }
21
+ echo "get gpu lock $gpu"
22
+
23
+ CONTAINER_NAME="swift-ci-$idx"
24
+ let is_get_file_lock=true
25
+
26
+ # pull image if there are update
27
+ docker pull ${IMAGE_NAME}:${IMAGE_VERSION}
28
+ if [ "$MODELSCOPE_SDK_DEBUG" == "True" ]; then
29
+ echo 'debugging'
30
+ docker run --rm --name $CONTAINER_NAME --shm-size=16gb \
31
+ --cpuset-cpus=${cpu_sets_arr[$idx]} \
32
+ --gpus='"'"device=$gpu"'"' \
33
+ -v $CODE_DIR:$CODE_DIR_IN_CONTAINER \
34
+ -v $MODELSCOPE_CACHE:$MODELSCOPE_CACHE_DIR_IN_CONTAINER \
35
+ -v $MODELSCOPE_HOME_CACHE/$idx:/root \
36
+ -v /home/admin/pre-commit:/home/admin/pre-commit \
37
+ -e CI_TEST=True \
38
+ -e TEST_LEVEL=$TEST_LEVEL \
39
+ -e MODELSCOPE_CACHE=$MODELSCOPE_CACHE_DIR_IN_CONTAINER \
40
+ -e MODELSCOPE_DOMAIN=$MODELSCOPE_DOMAIN \
41
+ -e MODELSCOPE_SDK_DEBUG=True \
42
+ -e HUB_DATASET_ENDPOINT=$HUB_DATASET_ENDPOINT \
43
+ -e TEST_ACCESS_TOKEN_CITEST=$TEST_ACCESS_TOKEN_CITEST \
44
+ -e TEST_ACCESS_TOKEN_SDKDEV=$TEST_ACCESS_TOKEN_SDKDEV \
45
+ -e TEST_LEVEL=$TEST_LEVEL \
46
+ -e MODELSCOPE_ENVIRONMENT='ci' \
47
+ -e TEST_UPLOAD_MS_TOKEN=$TEST_UPLOAD_MS_TOKEN \
48
+ -e MODEL_TAG_URL=$MODEL_TAG_URL \
49
+ -e MODELSCOPE_API_TOKEN=$MODELSCOPE_API_TOKEN \
50
+ -e PR_CHANGED_FILES=$PR_CHANGED_FILES \
51
+ --workdir=$CODE_DIR_IN_CONTAINER \
52
+ ${IMAGE_NAME}:${IMAGE_VERSION} \
53
+ $CI_COMMAND
54
+ else
55
+ docker run --rm --name $CONTAINER_NAME --shm-size=16gb \
56
+ --cpuset-cpus=${cpu_sets_arr[$idx]} \
57
+ --gpus='"'"device=$gpu"'"' \
58
+ -v $CODE_DIR:$CODE_DIR_IN_CONTAINER \
59
+ -v $MODELSCOPE_CACHE:$MODELSCOPE_CACHE_DIR_IN_CONTAINER \
60
+ -v $MODELSCOPE_HOME_CACHE/$idx:/root \
61
+ -v /home/admin/pre-commit:/home/admin/pre-commit \
62
+ -e CI_TEST=True \
63
+ -e TEST_LEVEL=$TEST_LEVEL \
64
+ -e MODELSCOPE_CACHE=$MODELSCOPE_CACHE_DIR_IN_CONTAINER \
65
+ -e MODELSCOPE_DOMAIN=$MODELSCOPE_DOMAIN \
66
+ -e HUB_DATASET_ENDPOINT=$HUB_DATASET_ENDPOINT \
67
+ -e TEST_ACCESS_TOKEN_CITEST=$TEST_ACCESS_TOKEN_CITEST \
68
+ -e TEST_ACCESS_TOKEN_SDKDEV=$TEST_ACCESS_TOKEN_SDKDEV \
69
+ -e TEST_LEVEL=$TEST_LEVEL \
70
+ -e MODELSCOPE_ENVIRONMENT='ci' \
71
+ -e TEST_UPLOAD_MS_TOKEN=$TEST_UPLOAD_MS_TOKEN \
72
+ -e MODEL_TAG_URL=$MODEL_TAG_URL \
73
+ -e MODELSCOPE_API_TOKEN=$MODELSCOPE_API_TOKEN \
74
+ -e PR_CHANGED_FILES=$PR_CHANGED_FILES \
75
+ --workdir=$CODE_DIR_IN_CONTAINER \
76
+ ${IMAGE_NAME}:${IMAGE_VERSION} \
77
+ $CI_COMMAND
78
+ fi
79
+ if [ $? -ne 0 ]; then
80
+ echo "Running test case failed, please check the log!"
81
+ exit -1
82
+ fi
83
+ break
84
+ done
85
+ if [ "$is_get_file_lock" = false ] ; then
86
+ echo 'No free GPU!'
87
+ exit 1
88
+ fi