@@ -14,7 +14,7 @@ concurrency:
14
14
cancel-in-progress : true
15
15
16
16
jobs :
17
- docker :
17
+ image-build :
18
18
strategy :
19
19
matrix :
20
20
include :
@@ -24,133 +24,104 @@ jobs:
24
24
tag-latest : ' auto'
25
25
tag-suffix : ' '
26
26
ffmpeg : ' '
27
+ image-type : ' extras'
28
+ runs-on : ' arc-runner-set'
27
29
- build-type : ' '
28
30
platforms : ' linux/amd64'
29
31
tag-latest : ' false'
30
32
tag-suffix : ' -ffmpeg'
31
33
ffmpeg : ' true'
32
-
33
- runs-on : ubuntu-latest
34
- steps :
35
- - name : Checkout
36
- uses : actions/checkout@v4
37
- - name : Release space from worker
38
- run : |
39
- echo "Listing top largest packages"
40
- pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
41
- head -n 30 <<< "${pkgs}"
42
- echo
43
- df -h
44
- echo
45
- sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true
46
- sudo apt-get remove --auto-remove android-sdk-platform-tools || true
47
- sudo apt-get purge --auto-remove android-sdk-platform-tools || true
48
- sudo rm -rf /usr/local/lib/android
49
- sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true
50
- sudo rm -rf /usr/share/dotnet
51
- sudo apt-get remove -y '^mono-.*' || true
52
- sudo apt-get remove -y '^ghc-.*' || true
53
- sudo apt-get remove -y '.*jdk.*|.*jre.*' || true
54
- sudo apt-get remove -y 'php.*' || true
55
- sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true
56
- sudo apt-get remove -y '^google-.*' || true
57
- sudo apt-get remove -y azure-cli || true
58
- sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true
59
- sudo apt-get remove -y '^gfortran-.*' || true
60
- sudo apt-get remove -y microsoft-edge-stable || true
61
- sudo apt-get remove -y firefox || true
62
- sudo apt-get remove -y powershell || true
63
- sudo apt-get remove -y r-base-core || true
64
- sudo apt-get autoremove -y
65
- sudo apt-get clean
66
- echo
67
- echo "Listing top largest packages"
68
- pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
69
- head -n 30 <<< "${pkgs}"
70
- echo
71
- sudo rm -rfv build || true
72
- df -h
73
- - name : Docker meta
74
- id : meta
75
- uses : docker/metadata-action@v5
76
- with :
77
- images : quay.io/go-skynet/local-ai
78
- tags : |
79
- type=ref,event=branch
80
- type=semver,pattern={{raw}}
81
- type=sha
82
- flavor : |
83
- latest=${{ matrix.tag-latest }}
84
- suffix=${{ matrix.tag-suffix }}
85
-
86
- - name : Set up QEMU
87
- uses : docker/setup-qemu-action@master
88
- with :
89
- platforms : all
90
-
91
- - name : Set up Docker Buildx
92
- id : buildx
93
- uses : docker/setup-buildx-action@master
94
-
95
- - name : Login to DockerHub
96
- if : github.event_name != 'pull_request'
97
- uses : docker/login-action@v3
98
- with :
99
- registry : quay.io
100
- username : ${{ secrets.LOCALAI_REGISTRY_USERNAME }}
101
- password : ${{ secrets.LOCALAI_REGISTRY_PASSWORD }}
102
-
103
- - name : Build and push
104
- uses : docker/build-push-action@v5
105
- with :
106
- builder : ${{ steps.buildx.outputs.name }}
107
- build-args : |
108
- BUILD_TYPE=${{ matrix.build-type }}
109
- CUDA_MAJOR_VERSION=${{ matrix.cuda-major-version }}
110
- CUDA_MINOR_VERSION=${{ matrix.cuda-minor-version }}
111
- FFMPEG=${{ matrix.ffmpeg }}
112
- context : .
113
- file : ./Dockerfile
114
- platforms : ${{ matrix.platforms }}
115
- push : ${{ github.event_name != 'pull_request' }}
116
- tags : ${{ steps.meta.outputs.tags }}
117
- labels : ${{ steps.meta.outputs.labels }}
118
-
119
-
120
- docker-gpu :
121
- strategy :
122
- matrix :
123
- include :
34
+ image-type : ' extras'
35
+ runs-on : ' arc-runner-set'
124
36
- build-type : ' cublas'
125
37
cuda-major-version : 11
126
38
cuda-minor-version : 7
127
39
platforms : ' linux/amd64'
128
40
tag-latest : ' false'
129
41
tag-suffix : ' -cublas-cuda11'
130
42
ffmpeg : ' '
43
+ image-type : ' extras'
44
+ runs-on : ' arc-runner-set'
131
45
- build-type : ' cublas'
132
46
cuda-major-version : 12
133
47
cuda-minor-version : 1
134
48
platforms : ' linux/amd64'
135
49
tag-latest : ' false'
136
50
tag-suffix : ' -cublas-cuda12'
137
51
ffmpeg : ' '
52
+ image-type : ' extras'
53
+ runs-on : ' arc-runner-set'
138
54
- build-type : ' cublas'
139
55
cuda-major-version : 11
140
56
cuda-minor-version : 7
141
57
platforms : ' linux/amd64'
142
58
tag-latest : ' false'
143
59
tag-suffix : ' -cublas-cuda11-ffmpeg'
144
60
ffmpeg : ' true'
61
+ image-type : ' extras'
62
+ runs-on : ' arc-runner-set'
145
63
- build-type : ' cublas'
146
64
cuda-major-version : 12
147
65
cuda-minor-version : 1
148
66
platforms : ' linux/amd64'
149
67
tag-latest : ' false'
150
68
tag-suffix : ' -cublas-cuda12-ffmpeg'
151
69
ffmpeg : ' true'
70
+ image-type : ' extras'
71
+ runs-on : ' arc-runner-set'
72
+ - build-type : ' '
73
+ # platforms: 'linux/amd64,linux/arm64'
74
+ platforms : ' linux/amd64'
75
+ tag-latest : ' auto'
76
+ tag-suffix : ' '
77
+ ffmpeg : ' '
78
+ image-type : ' extras'
79
+ runs-on : ' arc-runner-set'
80
+ - build-type : ' '
81
+ platforms : ' linux/amd64'
82
+ tag-latest : ' false'
83
+ tag-suffix : ' -ffmpeg-core'
84
+ ffmpeg : ' true'
85
+ image-type : ' core'
86
+ runs-on : ' ubuntu-latest'
87
+ - build-type : ' cublas'
88
+ cuda-major-version : 11
89
+ cuda-minor-version : 7
90
+ platforms : ' linux/amd64'
91
+ tag-latest : ' false'
92
+ tag-suffix : ' -cublas-cuda11-core'
93
+ ffmpeg : ' '
94
+ image-type : ' core'
95
+ runs-on : ' ubuntu-latest'
96
+ - build-type : ' cublas'
97
+ cuda-major-version : 12
98
+ cuda-minor-version : 1
99
+ platforms : ' linux/amd64'
100
+ tag-latest : ' false'
101
+ tag-suffix : ' -cublas-cuda12-core'
102
+ ffmpeg : ' '
103
+ image-type : ' core'
104
+ runs-on : ' ubuntu-latest'
105
+ - build-type : ' cublas'
106
+ cuda-major-version : 11
107
+ cuda-minor-version : 7
108
+ platforms : ' linux/amd64'
109
+ tag-latest : ' false'
110
+ tag-suffix : ' -cublas-cuda11-ffmpeg-core'
111
+ ffmpeg : ' true'
112
+ image-type : ' core'
113
+ runs-on : ' ubuntu-latest'
114
+ - build-type : ' cublas'
115
+ cuda-major-version : 12
116
+ cuda-minor-version : 1
117
+ platforms : ' linux/amd64'
118
+ tag-latest : ' false'
119
+ tag-suffix : ' -cublas-cuda12-ffmpeg-core'
120
+ ffmpeg : ' true'
121
+ image-type : ' core'
122
+ runs-on : ' ubuntu-latest'
152
123
153
- runs-on : arc-runner-set
124
+ runs-on : ${{ matrix.runs-on }}
154
125
steps :
155
126
- name : Force Install GIT latest
156
127
run : |
@@ -162,7 +133,42 @@ jobs:
162
133
&& sudo apt-get install -y git
163
134
- name : Checkout
164
135
uses : actions/checkout@v4
165
-
136
+ # - name: Release space from worker
137
+ # run: |
138
+ # echo "Listing top largest packages"
139
+ # pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
140
+ # head -n 30 <<< "${pkgs}"
141
+ # echo
142
+ # df -h
143
+ # echo
144
+ # sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true
145
+ # sudo apt-get remove --auto-remove android-sdk-platform-tools || true
146
+ # sudo apt-get purge --auto-remove android-sdk-platform-tools || true
147
+ # sudo rm -rf /usr/local/lib/android
148
+ # sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true
149
+ # sudo rm -rf /usr/share/dotnet
150
+ # sudo apt-get remove -y '^mono-.*' || true
151
+ # sudo apt-get remove -y '^ghc-.*' || true
152
+ # sudo apt-get remove -y '.*jdk.*|.*jre.*' || true
153
+ # sudo apt-get remove -y 'php.*' || true
154
+ # sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true
155
+ # sudo apt-get remove -y '^google-.*' || true
156
+ # sudo apt-get remove -y azure-cli || true
157
+ # sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true
158
+ # sudo apt-get remove -y '^gfortran-.*' || true
159
+ # sudo apt-get remove -y microsoft-edge-stable || true
160
+ # sudo apt-get remove -y firefox || true
161
+ # sudo apt-get remove -y powershell || true
162
+ # sudo apt-get remove -y r-base-core || true
163
+ # sudo apt-get autoremove -y
164
+ # sudo apt-get clean
165
+ # echo
166
+ # echo "Listing top largest packages"
167
+ # pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
168
+ # head -n 30 <<< "${pkgs}"
169
+ # echo
170
+ # sudo rm -rfv build || true
171
+ # df -h
166
172
- name : Docker meta
167
173
id : meta
168
174
uses : docker/metadata-action@v5
@@ -192,6 +198,7 @@ jobs:
192
198
registry : quay.io
193
199
username : ${{ secrets.LOCALAI_REGISTRY_USERNAME }}
194
200
password : ${{ secrets.LOCALAI_REGISTRY_PASSWORD }}
201
+
195
202
- name : Build and push
196
203
uses : docker/build-push-action@v5
197
204
with :
@@ -201,13 +208,10 @@ jobs:
201
208
CUDA_MAJOR_VERSION=${{ matrix.cuda-major-version }}
202
209
CUDA_MINOR_VERSION=${{ matrix.cuda-minor-version }}
203
210
FFMPEG=${{ matrix.ffmpeg }}
211
+ IMAGE_TYPE=${{ matrix.image-type }}
204
212
context : .
205
213
file : ./Dockerfile
206
214
platforms : ${{ matrix.platforms }}
207
215
push : ${{ github.event_name != 'pull_request' }}
208
216
tags : ${{ steps.meta.outputs.tags }}
209
217
labels : ${{ steps.meta.outputs.labels }}
210
- - name : Release space from worker ♻
211
- if : always()
212
- run : |
213
- docker system prune -f -a --volumes || true
0 commit comments