Skip to content

Commit 8c54269

Browse files
andyjmorganclaude
andcommitted
ci: remove change detection, build all images every release
Simplifies the release workflow by always building all Docker images instead of selectively building based on file changes. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1a51862 commit 8c54269

1 file changed

Lines changed: 18 additions & 79 deletions

File tree

.github/workflows/release.yml

Lines changed: 18 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)