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+ steps :
22+ - name : Set up Docker Buildx
23+ run : |
24+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
25+ docker buildx create --name nexent_builder --use
26+ else
27+ docker buildx use nexent_builder
28+ fi
29+ - name : Checkout code
30+ uses : actions/checkout@v4
31+ - name : Build main image (amd64) and load locally
32+ run : |
33+ docker buildx build --platform linux/amd64 -t nexent/nexent:dev-amd64 --load -f make/main/Dockerfile .
34+
35+ build-main-arm64 :
36+ runs-on : ubuntu-latest
37+ if : |
38+ github.event_name == 'workflow_dispatch' ||
39+ contains(toJSON(github.event.head_commit), 'backend/') ||
40+ contains(toJSON(github.event.head_commit), 'sdk/')
41+ steps :
42+ - name : Set up Docker Buildx
43+ run : |
44+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
45+ docker buildx create --name nexent_builder --use
46+ else
47+ docker buildx use nexent_builder
48+ fi
49+ - name : Checkout code
50+ uses : actions/checkout@v4
51+ - name : Build main image (arm64) and load locally
52+ run : |
53+ docker buildx build --platform linux/arm64 -t nexent/nexent:dev-arm64 --load -f make/main/Dockerfile .
54+
55+ build-data-process-amd64 :
56+ runs-on : ubuntu-latest
57+ steps :
58+ - name : Free up disk space on GitHub runner
59+ run : |
60+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
61+ - name : Set up Docker Buildx
62+ run : |
63+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
64+ docker buildx create --name nexent_builder --use
65+ else
66+ docker buildx use nexent_builder
67+ fi
68+ - name : Checkout code
69+ uses : actions/checkout@v4
70+ - name : Clone model
71+ run : |
72+ GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/Nexent-AI/model-assets
73+ cd ./model-assets
74+ GIT_TRACE=1 GIT_CURL_VERBOSE=1 GIT_LFS_LOG=debug git lfs pull
75+ rm -rf .git .gitattributes
76+ - name : Build data process image (amd64) and load locally
77+ run : |
78+ docker buildx build --platform linux/amd64 -t nexent/nexent-data-process:dev-amd64 --load -f make/data_process/Dockerfile .
79+
80+ build-data-process-arm64 :
81+ runs-on : ubuntu-latest
82+ steps :
83+ - name : Free up disk space on GitHub runner
84+ run : |
85+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
86+ - name : Set up Docker Buildx
87+ run : |
88+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
89+ docker buildx create --name nexent_builder --use
90+ else
91+ docker buildx use nexent_builder
92+ fi
93+ - name : Checkout code
94+ uses : actions/checkout@v4
95+ - name : Clone model
96+ run : |
97+ GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/Nexent-AI/model-assets
98+ cd ./model-assets
99+ GIT_TRACE=1 GIT_CURL_VERBOSE=1 GIT_LFS_LOG=debug git lfs pull
100+ rm -rf .git .gitattributes
101+ - name : Build data process image (arm64) and load locally
102+ run : |
103+ docker buildx build --platform linux/arm64 -t nexent/nexent-data-process:dev-arm64 --load -f make/data_process/Dockerfile .
104+
105+ build-web-amd64 :
106+ runs-on : ubuntu-latest
107+ steps :
108+ - name : Set up Docker Buildx
109+ run : |
110+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
111+ docker buildx create --name nexent_builder --use
112+ else
113+ docker buildx use nexent_builder
114+ fi
115+ - name : Checkout code
116+ uses : actions/checkout@v4
117+ - name : Build web image (amd64) and load locally
118+ run : |
119+ docker buildx build --platform linux/amd64 -t nexent/nexent-web:dev-amd64 --load -f make/web/Dockerfile .
120+
121+ build-web-arm64 :
122+ runs-on : ubuntu-latest
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 (arm64) and load locally
134+ run : |
135+ docker buildx build --platform linux/arm64 -t nexent/nexent-web:dev-arm64 --load -f make/web/Dockerfile .
136+
137+ build-terminal-amd64 :
138+ runs-on : ubuntu-latest
139+ steps :
140+ - name : Set up Docker Buildx
141+ run : |
142+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
143+ docker buildx create --name nexent_builder --use
144+ else
145+ docker buildx use nexent_builder
146+ fi
147+ - name : Checkout code
148+ uses : actions/checkout@v4
149+ - name : Build terminal image (amd64) and load locally
150+ run : |
151+ docker buildx build --platform linux/amd64 -t nexent/nexent-ubuntu-terminal:dev-amd64 --load -f make/terminal/Dockerfile .
152+
153+ build-terminal-arm64 :
154+ runs-on : ubuntu-latest
155+ steps :
156+ - name : Set up Docker Buildx
157+ run : |
158+ if ! docker buildx inspect nexent_builder > /dev/null 2>&1; then
159+ docker buildx create --name nexent_builder --use
160+ else
161+ docker buildx use nexent_builder
162+ fi
163+ - name : Checkout code
164+ uses : actions/checkout@v4
165+ - name : Build terminal image (arm64) and load locally
166+ run : |
167+ docker buildx build --platform linux/arm64 -t nexent/nexent-ubuntu-terminal:dev-arm64 --load -f make/terminal/Dockerfile .
0 commit comments