10 Commits

Author SHA1 Message Date
WorkClub Automation
785502f113 fix(cd): configure buildx for HTTP-only insecure registry
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m9s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 54s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 16:05:28 +01:00
WorkClub Automation
c657a123df feat(cd): add multi-arch Docker build support (AMD64 + ARM64)
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m40s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m18s
CI Pipeline / Infrastructure Validation (push) Successful in 10s
Add Docker Buildx support to build images for both linux/amd64 and linux/arm64 architectures using a single workflow. This enables deployment to ARM-based systems (e.g., Raspberry Pi, Apple Silicon) without separate builds.

Changes:
- Add Docker Buildx setup step to both backend and frontend jobs
- Replace single-arch 'docker build' with multi-arch 'docker buildx build'
- Configure '--platform linux/amd64,linux/arm64' for both architectures
- Consolidate tag and push operations into single buildx command
- Update evidence capture to include platform information
- Update release summary to indicate multi-arch images

Images will now be published as manifest lists containing both AMD64 and ARM64 variants under the same tags.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 15:39:39 +01:00
WorkClub Automation
5c815c824a fix(cd): remove http:// from REGISTRY_HOST for valid image tags
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m17s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 56s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 15:24:51 +01:00
WorkClub Automation
5e3968bd69 fix(cd): remove systemctl-based insecure registry config
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m18s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 57s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
- Remove 'Configure insecure registry' step from both backend and frontend jobs
- systemctl not available in Gitea Actions container environment
- Runner host must be pre-configured with insecure registry support
- Fixes: System has not been booted with systemd error
2026-03-08 15:18:27 +01:00
WorkClub Automation
145c47a439 Merge branch 'sisyphus/club-work-manager' 2026-03-08 15:11:30 +01:00
WorkClub Automation
49466839a3 fix(cd): add insecure registry config for HTTP push
Some checks failed
CI Pipeline / Backend Build & Test (push) Failing after 1m19s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 56s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
- Add Docker daemon configuration step to both backend and frontend jobs
- Configure insecure-registries to allow HTTP connections to registry
- Restart Docker daemon and verify configuration
- Resolves HTTP error when pushing to HTTP-only registry at 192.168.241.13:8080
2026-03-08 15:03:02 +01:00
6a912412c6 Enforce http for Registry
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m27s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 58s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
2026-03-08 14:52:47 +01:00
WorkClub Automation
01d5e1e330 fix(cd): change workflow to manual trigger with inputs
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m27s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 58s
CI Pipeline / Infrastructure Validation (push) Successful in 53s
2026-03-08 14:37:25 +01:00
b4b9d23429 next ci test
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m25s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m3s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-08 14:27:08 +01:00
7d9e7d146e simle test to force ci
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m10s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m0s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-08 14:22:56 +01:00

View File

@@ -88,37 +88,38 @@ jobs:
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY_HOST }} \
--username "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
- name: Build backend image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config-inline: |
[registry."192.168.241.13:8080"]
http = true
insecure = true
- name: Build and push backend multi-arch image
working-directory: ./backend
run: |
docker build \
-t ${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag ${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
--tag ${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }} \
--push \
-f Dockerfile \
.
- name: Tag with commit SHA
run: |
docker tag \
${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}
- name: Push images to registry
run: |
docker push ${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}
docker push ${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}
- name: Capture push evidence
- name: Capture push evidence (multi-arch)
run: |
mkdir -p .sisyphus/evidence
cat > .sisyphus/evidence/task-31-backend-push.json <<EOF
{
"scenario": "backend_image_push",
"scenario": "backend_image_push_multiarch",
"result": "success",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"details": {
"image": "${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}",
"version_tag": "${{ needs.prepare.outputs.image_tag }}",
"sha_tag": "sha-${{ needs.prepare.outputs.image_sha }}",
"platforms": "linux/amd64,linux/arm64",
"registry": "${{ env.REGISTRY_HOST }}"
}
}
@@ -147,37 +148,38 @@ jobs:
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY_HOST }} \
--username "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
- name: Build frontend image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config-inline: |
[registry."192.168.241.13:8080"]
http = true
insecure = true
- name: Build and push frontend multi-arch image
working-directory: ./frontend
run: |
docker build \
-t ${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag ${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
--tag ${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }} \
--push \
-f Dockerfile \
.
- name: Tag with commit SHA
run: |
docker tag \
${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }} \
${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}
- name: Push images to registry
run: |
docker push ${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}
docker push ${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}
- name: Capture push evidence
- name: Capture push evidence (multi-arch)
run: |
mkdir -p .sisyphus/evidence
cat > .sisyphus/evidence/task-32-frontend-push.json <<EOF
{
"scenario": "frontend_image_push",
"scenario": "frontend_image_push_multiarch",
"result": "success",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"details": {
"image": "${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}",
"version_tag": "${{ needs.prepare.outputs.image_tag }}",
"sha_tag": "sha-${{ needs.prepare.outputs.image_sha }}",
"platforms": "linux/amd64,linux/arm64",
"registry": "${{ env.REGISTRY_HOST }}"
}
}
@@ -210,6 +212,7 @@ jobs:
"frontend_image": "${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}",
"backend_job_conclusion": "${{ needs.backend-image.result }}",
"frontend_job_conclusion": "${{ needs.frontend-image.result }}",
"build_platforms": "linux/amd64,linux/arm64",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
}
EOF
@@ -228,10 +231,10 @@ jobs:
echo "**Release Tag:** ${{ needs.prepare.outputs.image_tag }}" >> $GITHUB_STEP_SUMMARY
echo "**Commit SHA:** ${{ needs.prepare.outputs.image_sha }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Published Images" >> $GITHUB_STEP_SUMMARY
echo "- **Backend:** \`${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}\`" >> $GITHUB_STEP_SUMMARY
echo "### Published Multi-Arch Images" >> $GITHUB_STEP_SUMMARY
echo "- **Backend:** \`${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}\` (linux/amd64, linux/arm64)" >> $GITHUB_STEP_SUMMARY
echo "- **Backend SHA:** \`${{ env.REGISTRY_HOST }}/${{ env.BACKEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "- **Frontend:** \`${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}\`" >> $GITHUB_STEP_SUMMARY
echo "- **Frontend:** \`${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:${{ needs.prepare.outputs.image_tag }}\` (linux/amd64, linux/arm64)" >> $GITHUB_STEP_SUMMARY
echo "- **Frontend SHA:** \`${{ env.REGISTRY_HOST }}/${{ env.FRONTEND_IMAGE }}:sha-${{ needs.prepare.outputs.image_sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Job Results" >> $GITHUB_STEP_SUMMARY