-
Notifications
You must be signed in to change notification settings - Fork 34
141 lines (123 loc) · 4.22 KB
/
test-helm.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: helm-test
on:
push:
branches:
- main
paths-ignore:
- '**.md'
- 'website/**'
pull_request:
branches:
- main
paths-ignore:
- '**.md'
- 'website/**'
permissions: read-all
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 240
steps:
- uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Harden Runner
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
with:
egress-policy: block
allowed-endpoints: >
auth.docker.io:443
huggingface.co:443
*.huggingface.co:443
*.hf.co:443
cdn.dl.k8s.io:443
dl.k8s.io:443
download.docker.com:443
gcr.io:443
github.com:443
*.githubusercontent.com:443
production.cloudflare.docker.com:443
proxy.golang.org:443
registry-1.docker.io:443
storage.googleapis.com:443
*.ubuntu.com:80
developer.download.nvidia.com:443
get.helm.sh:443
*.blob.core.windows.net:443
*.azureedge.net:443
registry.k8s.io:443
*.pkg.dev:443
*.amazonaws.com:443
dl-cdn.alpinelinux.org:443
ghcr.io:443
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# need containerd image store for testing local images
- uses: crazy-max/ghaction-setup-docker@01efb57f882e3b1a22e7cf3501dbe51287b0ecb4 # v4.0.0
with:
daemon-config: |
{
"debug": true,
"features": {
"containerd-snapshotter": true
}
}
- uses: crazy-max/ghaction-github-runtime@b3a9207c0e1ef41f4cf215303c976869d0c2c1c4 # v3.0.0
- name: build aikit
run: |
docker buildx build . -t aikit:test \
--load --provenance=false --progress plain \
--cache-from=type=gha,scope=aikit-amd64 \
--cache-to=type=gha,scope=aikit-amd64,mode=max
- name: build test model
run: |
docker buildx build . -t testmodel:test \
-f test/aikitfile-llama.yaml \
--load --provenance=false --progress plain \
--cache-from=type=gha,scope=testmodel-amd64 \
--cache-to=type=gha,scope=testmodel-amd64,mode=max
- name: list images
run: docker images
- name: install e2e dependencies
run: make test-e2e-dependencies
- name: create kind cluster
run: kind create cluster --wait 5m
- name: load test model image into kind cluster
run: kind load docker-image testmodel:test
- name: deploy test model
run: |
helm install charts/aikit --wait --debug \
--name-template aikit --namespace aikit --create-namespace \
--set image.repository=testmodel \
--set image.tag=test \
--set image.pullPolicy=Never
kubectl port-forward -n aikit service/aikit 8080:8080 &
- name: run test
run: |
result=$(curl --fail --retry 10 --retry-all-errors http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "llama-3.2-1b-instruct",
"messages": [{"role": "user", "content": "explain kubernetes in a sentence"}]
}')
echo $result
choices=$(echo "$result" | jq '.choices')
if [ -z "$choices" ]; then
exit 1
fi
- name: save logs
if: always()
run: |
echo "KIND_LOGS_PATH=$(kind export logs)" >> $GITHUB_ENV
- name: publish logs
if: always()
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: kind-logs
path: $KIND_LOGS_PATH