Skip to content

Commit 6ae6067

Browse files
authored
🔨 improve the CICD process.
2 parents e832ca4 + 0887e45 commit 6ae6067

File tree

3 files changed

+193
-304
lines changed

3 files changed

+193
-304
lines changed
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
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

Comments
 (0)