-
Notifications
You must be signed in to change notification settings - Fork 115
133 lines (120 loc) · 3.98 KB
/
model_servers.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
name: Model Servers
on:
pull_request:
branches:
- main
paths:
- 'model_servers/**'
- 'models/Makefile'
- .github/workflows/model_servers.yaml
push:
branches:
- main
paths:
- 'model_servers/**'
- 'models/Makefile'
- .github/workflows/model_servers.yaml
tags:
- '*'
workflow_dispatch:
env:
REGISTRY: ghcr.io
REGISTRY_ORG: containers
jobs:
model-servers-buid-and-push:
if: "!contains(github.event.pull_request.labels.*.name, 'hold-tests')"
strategy:
matrix:
include:
- image_name: llamacpp_python
model: granite
flavor: base
directory: llamacpp_python
platforms: linux/amd64,linux/arm64
no_gpu: 1
- image_name: llamacpp-python-cuda
model: granite
flavor: cuda
directory: llamacpp_python
platforms: linux/amd64,linux/arm64
no_gpu: 0
- image_name: llamacpp-python-vulkan-amd
model: granite
flavor: vulkan/amd64
directory: llamacpp_python
platforms: linux/amd64
no_gpu: 0
- image_name: llamacpp-python-vulkan-arm
model: granite
flavor: vulkan/arm64
directory: llamacpp_python
platforms: linux/arm64
no_gpu: 0
- image_name: whispercpp
model: whisper-small
flavor: base
directory: whispercpp
platforms: linux/amd64,linux/arm64
no_gpu: 1
- image_name: object_detection_python
model: facebook-detr-resnet-101
flavor: base
directory: object_detection_python
platforms: linux/amd64,linux/arm64
no_gpu: 1
runs-on: ubuntu-24.04
permissions:
contents: read
packages: write
services:
registry:
image: registry:2.8.3
ports:
- 5000:5000
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- uses: actions/[email protected]
- name: Install qemu dependency
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
- name: Set up Python
uses: actions/[email protected]
with:
python-version: '3.11'
- name: Build Image
id: build_image
uses: redhat-actions/[email protected]
with:
image: ${{ env.REGISTRY }}/${{ github.repository_owner}}/${{ matrix.image_name }}
platforms: ${{ matrix.platforms }}
tags: latest ${{ github.ref_type == 'tag' && github.ref_name || '' }}
containerfiles: ./model_servers/${{ matrix.directory }}/${{ matrix.flavor }}/Containerfile
context: model_servers/${{ matrix.directory }}/
- name: Download model
working-directory: ./models
run: make download-model-${{ matrix.model }}
- name: Install python dependencies
working-directory: ./model_servers/${{ matrix.directory }}/
run: make install
- name: Run non-gpu tests
working-directory: ./model_servers/${{ matrix.directory }}/
if: ${{ matrix.no_gpu }}
run: make test REGISTRY=${{ env.REGISTRY }} IMAGE_NAME=${{ env.REGISTRY_ORG }}/${{ matrix.image_name}}:latest
- name: Login to Container Registry
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: redhat-actions/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push image
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: redhat-actions/[email protected]
with:
image: ${{ steps.build_image.outputs.image }}
tags: ${{ steps.build_image.outputs.tags }}
registry: ${{ env.REGISTRY }}