@@ -113,10 +113,6 @@ jobs:
113113 outputs :
114114 version : ${{ steps.semver.outputs.version }}
115115 tag : ${{ steps.semver.outputs.tag }}
116- manager-changed : ${{ steps.changes.outputs.manager }}
117- executor-changed : ${{ steps.changes.outputs.executor }}
118- mcp-server-changed : ${{ steps.changes.outputs.mcp-server }}
119- frontend-changed : ${{ steps.changes.outputs.frontend }}
120116 steps :
121117 - uses : actions/checkout@v4
122118 with :
@@ -137,30 +133,6 @@ jobs:
137133 echo "version=${{ steps.gitversion.outputs.semVer }}" >> $GITHUB_OUTPUT
138134 echo "tag=v${{ steps.gitversion.outputs.semVer }}" >> $GITHUB_OUTPUT
139135
140- - name : Detect changes
141- id : changes
142- uses : dorny/paths-filter@v3
143- with :
144- filters : |
145- manager:
146- - 'src/DonkeyWork.CodeSandbox.Manager/**'
147- - 'src/DonkeyWork.CodeSandbox.Contracts/**'
148- - 'src/DonkeyWork.CodeSandbox.Client/**'
149- - 'Dockerfile'
150- - 'Directory.Packages.props'
151- - '*.sln'
152- executor:
153- - 'src/DonkeyWork.CodeSandbox.Server/**'
154- - 'src/DonkeyWork.CodeSandbox.Contracts/**'
155- - 'Directory.Packages.props'
156- - '*.sln'
157- mcp-server:
158- - 'src/DonkeyWork.CodeSandbox.McpServer/**'
159- - 'Directory.Packages.props'
160- - '*.sln'
161- frontend:
162- - 'frontend/**'
163-
164136 docker-build :
165137 name : Build ${{ matrix.component }}
166138 runs-on : self-hosted
@@ -175,41 +147,29 @@ jobs:
175147 context : .
176148 title : Kata Container Manager
177149 description : REST API for managing Kata containers in Kubernetes
178- changed : manager-changed
179150 - component : executor
180151 image : donkeywork-codesandbox-executor
181152 dockerfile : ./src/DonkeyWork.CodeSandbox.Server/Dockerfile
182153 context : .
183154 title : DonkeyWork CodeSandbox Server
184155 description : HTTP+SSE server for executing bash commands with Python and Node.js support
185- changed : executor-changed
186156 - component : mcp-server
187157 image : donkeywork-codesandbox-mcp-server
188158 dockerfile : ./src/DonkeyWork.CodeSandbox.McpServer/Dockerfile
189159 context : .
190160 title : DonkeyWork CodeSandbox MCP Server
191161 description : MCP bridge server for AI agent integration
192- changed : mcp-server-changed
193162 - component : frontend
194163 image : donkeywork-codesandbox-frontend
195164 dockerfile : ./frontend/Dockerfile
196165 context : ./frontend
197166 title : DonkeyWork CodeSandbox Frontend
198167 description : Web UI for managing Kata sandbox containers
199- changed : frontend-changed
200168 steps :
201- - name : Check if build needed
202- id : check
203- run : |
204- CHANGED="${{ needs.prepare-release.outputs[matrix.changed] }}"
205- echo "should-build=${CHANGED}" >> $GITHUB_OUTPUT
206- echo "Component ${{ matrix.component }} changed: ${CHANGED}"
207-
208169 - uses : actions/checkout@v4
209- if : steps.check.outputs.should-build == 'true'
210170
211171 - name : Configure NuGet for self-hosted runner
212- if : steps.check.outputs.should-build == 'true' && matrix.component != 'frontend'
172+ if : matrix.component != 'frontend'
213173 run : |
214174 cat > nuget.config << 'EOF'
215175 <?xml version="1.0" encoding="utf-8"?>
@@ -222,21 +182,17 @@ jobs:
222182 EOF
223183
224184 - uses : docker/setup-qemu-action@v3
225- if : steps.check.outputs.should-build == 'true'
226185
227186 - uses : docker/setup-buildx-action@v3
228- if : steps.check.outputs.should-build == 'true'
229187
230188 - name : Log in to GitHub Container Registry
231- if : steps.check.outputs.should-build == 'true'
232189 uses : docker/login-action@v3
233190 with :
234191 registry : ${{ env.REGISTRY }}
235192 username : ${{ github.actor }}
236193 password : ${{ secrets.GITHUB_TOKEN }}
237194
238195 - name : Extract metadata
239- if : steps.check.outputs.should-build == 'true'
240196 id : meta
241197 uses : docker/metadata-action@v5
242198 with :
@@ -254,7 +210,6 @@ jobs:
254210 org.opencontainers.image.version=${{ needs.prepare-release.outputs.version }}
255211
256212 - name : Build and push Docker image
257- if : steps.check.outputs.should-build == 'true'
258213 id : build
259214 uses : docker/build-push-action@v5
260215 with :
@@ -271,19 +226,12 @@ jobs:
271226 sbom : true
272227
273228 - name : Generate summary
274- if : steps.check.outputs.should-build == 'true'
275229 run : |
276230 echo "## ${{ matrix.title }} Published" >> $GITHUB_STEP_SUMMARY
277231 echo "**Image:** \`${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image }}\`" >> $GITHUB_STEP_SUMMARY
278232 echo "**Version:** \`${{ needs.prepare-release.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
279233 echo "**Digest:** \`${{ steps.build.outputs.digest }}\`" >> $GITHUB_STEP_SUMMARY
280234
281- - name : Skip summary
282- if : steps.check.outputs.should-build != 'true'
283- run : |
284- echo "## ${{ matrix.title }} Skipped" >> $GITHUB_STEP_SUMMARY
285- echo "No changes detected for this component." >> $GITHUB_STEP_SUMMARY
286-
287235 create-release :
288236 name : Create GitHub Release
289237 runs-on : self-hosted
@@ -297,10 +245,6 @@ jobs:
297245 - name : Generate changelog
298246 env :
299247 VERSION : ${{ needs.prepare-release.outputs.version }}
300- MANAGER_CHANGED : ${{ needs.prepare-release.outputs.manager-changed }}
301- EXECUTOR_CHANGED : ${{ needs.prepare-release.outputs.executor-changed }}
302- MCP_SERVER_CHANGED : ${{ needs.prepare-release.outputs.mcp-server-changed }}
303- FRONTEND_CHANGED : ${{ needs.prepare-release.outputs.frontend-changed }}
304248 run : |
305249 PREVIOUS_TAG=$(git describe --abbrev=0 --tags 2>/dev/null || echo "")
306250
@@ -312,12 +256,11 @@ jobs:
312256 git log ${PREVIOUS_TAG}..HEAD --pretty=format:"* %s (%h)" --no-merges >> CHANGELOG.md
313257 fi
314258
315- echo -e "\n\n## Docker Images Updated\n" >> CHANGELOG.md
316-
317- [ "$MANAGER_CHANGED" == "true" ] && echo -e "### Manager API\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-manager:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
318- [ "$EXECUTOR_CHANGED" == "true" ] && echo -e "### Executor API\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-executor:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
319- [ "$MCP_SERVER_CHANGED" == "true" ] && echo -e "### MCP Server\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-mcp-server:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
320- [ "$FRONTEND_CHANGED" == "true" ] && echo -e "### Frontend\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-frontend:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
259+ echo -e "\n\n## Docker Images\n" >> CHANGELOG.md
260+ echo -e "### Manager API\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-manager:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
261+ echo -e "### Executor\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-executor:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
262+ echo -e "### MCP Server\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-mcp-server:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
263+ echo -e "### Frontend\n\`\`\`bash\ndocker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-frontend:${VERSION}\n\`\`\`\n" >> CHANGELOG.md
321264
322265 echo "**Platforms:** linux/amd64, linux/arm64" >> CHANGELOG.md
323266
@@ -341,26 +284,22 @@ jobs:
341284 - name : Generate summary
342285 env :
343286 VERSION : ${{ needs.prepare-release.outputs.version }}
344- MANAGER_CHANGED : ${{ needs.prepare-release.outputs.manager-changed }}
345- EXECUTOR_CHANGED : ${{ needs.prepare-release.outputs.executor-changed }}
346- MCP_SERVER_CHANGED : ${{ needs.prepare-release.outputs.mcp-server-changed }}
347- FRONTEND_CHANGED : ${{ needs.prepare-release.outputs.frontend-changed }}
348287 run : |
349288 echo "# Release Summary" >> $GITHUB_STEP_SUMMARY
350289 echo "## Version: ${VERSION}" >> $GITHUB_STEP_SUMMARY
351290 echo "" >> $GITHUB_STEP_SUMMARY
352- echo "| Component | Changed | Status |" >> $GITHUB_STEP_SUMMARY
353- echo "|-----------|---------|-------- |" >> $GITHUB_STEP_SUMMARY
354- echo "| Manager | ${MANAGER_CHANGED} | ${ { needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
355- echo "| Executor | ${EXECUTOR_CHANGED} | ${ { needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
356- echo "| MCP Server | ${MCP_SERVER_CHANGED} | ${ { needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
357- echo "| Frontend | ${FRONTEND_CHANGED} | ${ { needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
358- echo "| GitHub Release | - | ${{ needs.create-release.result }} |" >> $GITHUB_STEP_SUMMARY
291+ echo "| Component | Status |" >> $GITHUB_STEP_SUMMARY
292+ echo "|-----------|--------|" >> $GITHUB_STEP_SUMMARY
293+ echo "| Manager | ${{ needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
294+ echo "| Executor | ${{ needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
295+ echo "| MCP Server | ${{ needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
296+ echo "| Frontend | ${{ needs.docker-build.result }} |" >> $GITHUB_STEP_SUMMARY
297+ echo "| GitHub Release | ${{ needs.create-release.result }} |" >> $GITHUB_STEP_SUMMARY
359298 echo "" >> $GITHUB_STEP_SUMMARY
360- echo "### Images Built This Release " >> $GITHUB_STEP_SUMMARY
299+ echo "### Docker Images " >> $GITHUB_STEP_SUMMARY
361300 echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
362- [ "$MANAGER_CHANGED" == "true" ] && echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-manager:${VERSION}" >> $GITHUB_STEP_SUMMARY
363- [ "$EXECUTOR_CHANGED" == "true" ] && echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-executor:${VERSION}" >> $GITHUB_STEP_SUMMARY
364- [ "$MCP_SERVER_CHANGED" == "true" ] && echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-mcp-server:${VERSION}" >> $GITHUB_STEP_SUMMARY
365- [ "$FRONTEND_CHANGED" == "true" ] && echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-frontend:${VERSION}" >> $GITHUB_STEP_SUMMARY
301+ echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-manager:${VERSION}" >> $GITHUB_STEP_SUMMARY
302+ echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-executor:${VERSION}" >> $GITHUB_STEP_SUMMARY
303+ echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-mcp-server:${VERSION}" >> $GITHUB_STEP_SUMMARY
304+ echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/donkeywork-codesandbox-frontend:${VERSION}" >> $GITHUB_STEP_SUMMARY
366305 echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
0 commit comments