1+ name : Docker Build All Images
2+
3+ concurrency :
4+ group : docker-build-dev-${{ github.ref }}
5+ cancel-in-progress : true
6+
7+ on :
8+ workflow_dispatch :
9+ pull_request :
10+ branches : [develop]
11+ push :
12+ branches : [develop]
13+
14+ jobs :
15+ build-main-amd64 :
16+ runs-on : ubuntu-latest
17+ if : |
18+ github.event_name == 'workflow_dispatch' ||
19+ contains(toJSON(github.event.head_commit), 'backend/') ||
20+ contains(toJSON(github.event.head_commit), 'sdk/') ||
21+ contains(toJSON(github.event.head_commit), 'make/main/')
22+ steps :
23+ - name : Set up Docker Buildx
24+ run : |
25+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
26+ docker buildx create --name nexent_builder --use
27+ else
28+ docker buildx use nexent_builder
29+ fi
30+ - name : Checkout code
31+ uses : actions/checkout@v4
32+ - name : Build main image (amd64) and load locally
33+ run : |
34+ docker buildx build --platform linux/amd64 -t nexent/nexent:dev-amd64 --load -f make/main/Dockerfile .
35+
36+ build-main-arm64 :
37+ runs-on : ubuntu-latest
38+ if : |
39+ github.event_name == 'workflow_dispatch' ||
40+ contains(toJSON(github.event.head_commit), 'backend/') ||
41+ contains(toJSON(github.event.head_commit), 'sdk/') ||
42+ contains(toJSON(github.event.head_commit), 'make/main/')
43+ steps :
44+ - name : Set up Docker Buildx
45+ run : |
46+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
47+ docker buildx create --name nexent_builder --use
48+ else
49+ docker buildx use nexent_builder
50+ fi
51+ - name : Checkout code
52+ uses : actions/checkout@v4
53+ - name : Build main image (arm64) and load locally
54+ run : |
55+ docker buildx build --platform linux/arm64 -t nexent/nexent:dev-arm64 --load -f make/main/Dockerfile .
56+
57+ build-data-process-amd64 :
58+ runs-on : ubuntu-latest
59+ if : |
60+ github.event_name == 'workflow_dispatch' ||
61+ contains(toJSON(github.event.head_commit), 'backend/') ||
62+ contains(toJSON(github.event.head_commit), 'sdk/') ||
63+ contains(toJSON(github.event.head_commit), 'make/data_process/')
64+ steps :
65+ - name : Free up disk space on GitHub runner
66+ run : |
67+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
68+ - name : Set up Docker Buildx
69+ run : |
70+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
71+ docker buildx create --name nexent_builder --use
72+ else
73+ docker buildx use nexent_builder
74+ fi
75+ - name : Checkout code
76+ uses : actions/checkout@v4
77+ - name : Clone model
78+ run : |
79+ GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/Nexent-AI/model-assets
80+ cd ./model-assets
81+ GIT_TRACE=1 GIT_CURL_VERBOSE=1 GIT_LFS_LOG=debug git lfs pull
82+ rm -rf .git .gitattributes
83+ - name : Build data process image (amd64) and load locally
84+ run : |
85+ docker buildx build --platform linux/amd64 -t nexent/nexent-data-process:dev-amd64 --load -f make/data_process/Dockerfile .
86+
87+ build-data-process-arm64 :
88+ runs-on : ubuntu-latest
89+ if : |
90+ github.event_name == 'workflow_dispatch' ||
91+ contains(toJSON(github.event.head_commit), 'backend/') ||
92+ contains(toJSON(github.event.head_commit), 'sdk/') ||
93+ contains(toJSON(github.event.head_commit), 'make/data_process/')
94+ steps :
95+ - name : Free up disk space on GitHub runner
96+ run : |
97+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
98+ - name : Set up Docker Buildx
99+ run : |
100+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
101+ docker buildx create --name nexent_builder --use
102+ else
103+ docker buildx use nexent_builder
104+ fi
105+ - name : Checkout code
106+ uses : actions/checkout@v4
107+ - name : Clone model
108+ run : |
109+ GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/Nexent-AI/model-assets
110+ cd ./model-assets
111+ GIT_TRACE=1 GIT_CURL_VERBOSE=1 GIT_LFS_LOG=debug git lfs pull
112+ rm -rf .git .gitattributes
113+ - name : Build data process image (arm64) and load locally
114+ run : |
115+ docker buildx build --platform linux/arm64 -t nexent/nexent-data-process:dev-arm64 --load -f make/data_process/Dockerfile .
116+
117+ build-web-amd64 :
118+ runs-on : ubuntu-latest
119+ if : |
120+ github.event_name == 'workflow_dispatch' ||
121+ contains(toJSON(github.event.head_commit), 'frontend/') ||
122+ contains(toJSON(github.event.head_commit), 'make/web/')
123+ steps :
124+ - name : Set up Docker Buildx
125+ run : |
126+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
127+ docker buildx create --name nexent_builder --use
128+ else
129+ docker buildx use nexent_builder
130+ fi
131+ - name : Checkout code
132+ uses : actions/checkout@v4
133+ - name : Build web image (amd64) and load locally
134+ run : |
135+ docker buildx build --platform linux/amd64 -t nexent/nexent-web:dev-amd64 --load -f make/web/Dockerfile .
136+
137+ build-web-arm64 :
138+ runs-on : ubuntu-latest
139+ if : |
140+ github.event_name == 'workflow_dispatch' ||
141+ contains(toJSON(github.event.head_commit), 'frontend/') ||
142+ contains(toJSON(github.event.head_commit), 'make/web/')
143+ steps :
144+ - name : Set up Docker Buildx
145+ run : |
146+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
147+ docker buildx create --name nexent_builder --use
148+ else
149+ docker buildx use nexent_builder
150+ fi
151+ - name : Checkout code
152+ uses : actions/checkout@v4
153+ - name : Build web image (arm64) and load locally
154+ run : |
155+ docker buildx build --platform linux/arm64 -t nexent/nexent-web:dev-arm64 --load -f make/web/Dockerfile .
156+
157+ build-terminal-amd64 :
158+ runs-on : ubuntu-latest
159+ if : |
160+ github.event_name == 'workflow_dispatch' ||
161+ contains(toJSON(github.event.head_commit), 'make/terminal/')
162+ steps :
163+ - name : Set up Docker Buildx
164+ run : |
165+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
166+ docker buildx create --name nexent_builder --use
167+ else
168+ docker buildx use nexent_builder
169+ fi
170+ - name : Checkout code
171+ uses : actions/checkout@v4
172+ - name : Build terminal image (amd64) and load locally
173+ run : |
174+ docker buildx build --platform linux/amd64 -t nexent/nexent-ubuntu-terminal:dev-amd64 --load -f make/terminal/Dockerfile .
175+
176+ build-terminal-arm64 :
177+ runs-on : ubuntu-latest
178+ if : |
179+ github.event_name == 'workflow_dispatch' ||
180+ contains(toJSON(github.event.head_commit), 'make/terminal/')
181+ steps :
182+ - name : Set up Docker Buildx
183+ run : |
184+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
185+ docker buildx create --name nexent_builder --use
186+ else
187+ docker buildx use nexent_builder
188+ fi
189+ - name : Checkout code
190+ uses : actions/checkout@v4
191+ - name : Build terminal image (arm64) and load locally
192+ run : |
193+ docker buildx build --platform linux/arm64 -t nexent/nexent-ubuntu-terminal:dev-arm64 --load -f make/terminal/Dockerfile .
0 commit comments