5
5
push :
6
6
paths :
7
7
- ' examples/online_serving/chart-helm/**'
8
+ pull_request :
8
9
env :
9
10
CHART_NAME : chart-vllm
10
11
36
37
- name : helm package
37
38
run : helm package examples/online_serving/chart-helm --version ${{ env.CHART_TAG }}
38
39
39
- - name : helm push
40
- run : helm push /home/runner/work/vllm/vllm/${{ env.CHART_NAME }}-${{ env.CHART_TAG }}.tgz oci://ghcr.io/${{ github.repository_owner }}
40
+ # - name: helm push
41
+ # run: helm push /home/runner/work/vllm/vllm/${{ env.CHART_NAME }}-${{ env.CHART_TAG }}.tgz oci://ghcr.io/${{ github.repository_owner }}
42
+
43
+ - name : Setup minio
44
+ run : |
45
+ docker network create vllm-net
46
+ docker run -d -p 9000:9000 --name minio --net vllm-net \
47
+ -e "MINIO_ACCESS_KEY=minioadmin" \
48
+ -e "MINIO_SECRET_KEY=minioadmin" \
49
+ -v /tmp/data:/data \
50
+ -v /tmp/config:/root/.minio \
51
+ minio/minio server /data
52
+ export AWS_ACCESS_KEY_ID=minioadmin
53
+ export AWS_SECRET_ACCESS_KEY=minioadmin
54
+ export AWS_EC2_METADATA_DISABLED=true
55
+ mkdir opt-125m
56
+ cd opt-125m && curl -O -Ls "https://huggingface.co/facebook/opt-125m/resolve/main/{pytorch_model.bin,config.json,generation_config.json,merges.txt,special_tokens_map.json,tokenizer_config.json,vocab.json}" && cd ..
57
+ aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket
58
+ aws --endpoint-url http://127.0.0.1:9000/ s3 cp opt-125m/ s3://testbucket/opt-125m --recursive
59
+
60
+ - name : Create kind cluster
61
+ uses : helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0
62
+
63
+ - name : Build the Docker image vllm cpu
64
+ run : docker buildx build -f Dockerfile.cpu -t vllm-cpu-env .
65
+
66
+ - name : Configuration of docker images, network and namespace for the kind cluster
67
+ run : |
68
+ docker pull amazon/aws-cli:2.6.4
69
+ kind load docker-image amazon/aws-cli:2.6.4 --name chart-testing
70
+ kind load docker-image vllm-cpu-env:latest --name chart-testing
71
+ docker network connect vllm-net "$(docker ps -aqf "name=chart-testing-control-plane")"
72
+ kubectl create ns ns-vllm
73
+
74
+ - name : Run chart-testing (install)
75
+ run : |
76
+ export AWS_ACCESS_KEY_ID=minioadmin
77
+ export AWS_SECRET_ACCESS_KEY=minioadmin
78
+ sleep 30 && kubectl -n ns-vllm logs -f "$(kubectl -n ns-vllm get pods | awk '/deployment/ {print $1;exit}')" &
79
+ helm install --wait --wait-for-jobs --timeout 5m0s --debug --create-namespace --namespace=ns-vllm test-vllm oci://ghcr.io/mfournioux/chart-vllm --version 0.0.1 -f examples/online_serving/chart-helm/values.yaml --set secrets.s3endpoint=http://minio:9000 --set secrets.s3bucketname=testbucket --set secrets.s3accesskeyid=$AWS_ACCESS_KEY_ID --set secrets.s3accesskey=$AWS_SECRET_ACCESS_KEY --set resources.requests.cpu=1 --set resources.requests.memory=4Gi --set resources.limits.cpu=2 --set resources.limits.memory=5Gi --set image.env[0].name=VLLM_CPU_KVCACHE_SPACE --set image.env[1].name=VLLM_LOGGING_LEVEL --set-string image.env[0].value="1" --set-string image.env[1].value="DEBUG" --set-string extraInit.s3modelpath="opt-125m/" --set-string 'resources.limits.nvidia\.com/gpu=0' --set-string 'resources.requests.nvidia\.com/gpu=0' --set-string image.repository="vllm-cpu-env"
80
+
81
+ - name : curl test
82
+ run : |
83
+ kubectl -n ns-vllm port-forward service/test-vllm-service 8001:80 &
84
+ sleep 10
85
+ CODE="$(curl -v -f --location http://localhost:8001/v1/completions \
86
+ --header "Content-Type: application/json" \
87
+ --data '{
88
+ "model": "opt-125m",
89
+ "prompt": "San Francisco is a",
90
+ "max_tokens": 7,
91
+ "temperature": 0
92
+ }'):$CODE"
93
+ echo "$CODE"
0 commit comments