Skip to content

adds docker test in release pipeline#1655

Open
akshaydeo wants to merge 1 commit intomainfrom
02-15-adds_docker_test_in_release_pipeline
Open

adds docker test in release pipeline#1655
akshaydeo wants to merge 1 commit intomainfrom
02-15-adds_docker_test_in_release_pipeline

Conversation

@akshaydeo
Copy link
Contributor

@akshaydeo akshaydeo commented Feb 15, 2026

Summary

Added Docker image testing for both AMD64 and ARM64 architectures to the release pipeline, ensuring Docker images work correctly before release.

Changes

  • Added two new jobs to the GitHub workflow: test-docker-image-amd64 and test-docker-image-arm64
  • Created a new test script .github/workflows/scripts/test-docker-image.sh that builds and tests Docker images
  • Updated job dependencies to include the new Docker image tests
  • Renamed build-docker-image Makefile target to docker-image for consistency
  • Downgraded @phosphor-icons/react from 2.1.10 to 2.1.9 in UI dependencies

Type of change

  • Feature
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • UI (Next.js)

How to test

Test the Docker image build and run process:

# Build the Docker image
make docker-image

# Test the Docker image locally
./.github/workflows/scripts/test-docker-image.sh linux/amd64
# Or for ARM64
./.github/workflows/scripts/test-docker-image.sh linux/arm64

Breaking changes

  • No

Security considerations

The Docker image tests run in isolated containers and perform basic health checks to verify functionality.

Checklist

  • I added/updated tests where appropriate
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 15, 2026

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Added automated Docker image tests for AMD64 and ARM64 to the CI pipeline to improve release gating and platform reliability.
    • Renamed the Docker build command used in local/build tooling and clarified build output messaging.
    • Updated an icon library dependency version in the UI package.

Walkthrough

Adds Docker image testing jobs to the release pipeline (amd64 and arm64), a shell script to build/run/health-check test images, renames a Makefile Docker target, and downgrades an icon dependency in the UI package.

Changes

Cohort / File(s) Summary
CI Workflow
.github/workflows/release-pipeline.yml
Added test-docker-image-amd64 and test-docker-image-arm64 jobs and wired their results into needs/gating logic across release and build jobs so docker-image tests gate downstream steps.
Docker Test Script
.github/workflows/scripts/test-docker-image.sh
New Bash script to build the test image for a platform, run a container, perform HTTP health checks with retries, dump logs on failure, and clean up images/containers.
Makefile
Makefile
Renamed public target build-docker-imagedocker-image, updated PHONY targets, and added an echo confirming built image tags.
UI Dependency
ui/package.json
Downgraded @phosphor-icons/react from 2.1.10 to 2.1.9.

Sequence Diagram(s)

sequenceDiagram
    rect rgba(200,220,255,0.5)
    participant GH as GitHub Actions Runner
    end
    rect rgba(220,255,200,0.5)
    participant Buildx as Docker Buildx
    end
    rect rgba(255,240,200,0.5)
    participant Container as Test Container
    end
    rect rgba(255,220,220,0.5)
    participant Health as HTTP Healthcheck (localhost:18080)
    end

    GH->>Buildx: invoke build for platform (linux/amd64 or linux/arm64)
    Buildx->>GH: image produced (tagged)
    GH->>Container: run container from image (platform-aware)
    Container->>Health: start service and bind :18080
    GH->>Health: curl /health (retries)
    alt health OK
        Health-->>GH: 200 OK
        GH->>Container: stop & remove
        GH->>Buildx: remove test image
        GH-->>GH: success result
    else health failed
        Container-->>GH: logs
        GH->>Container: stop & remove
        GH->>Buildx: remove test image
        GH-->>GH: fail result
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 A tiny rabbit hops the CI track,
Builds an image and then runs it back,
Pokes /health with patient retries,
Nibbles logs when problems arise,
Hops off when green — hooray, no flack! 🥕

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the primary change: adding Docker image testing to the release pipeline. It is concise and specific enough to convey the main modification.
Description check ✅ Passed The PR description covers all required template sections with substantive content including summary, changes, type of change, affected areas, testing instructions, and checklist items.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 02-15-adds_docker_test_in_release_pipeline

No actionable comments were generated in the recent review. 🎉


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Contributor

🧪 Test Suite Available

This PR can be tested by a repository admin.

Run tests for PR #1655

@akshaydeo akshaydeo marked this pull request as ready for review February 15, 2026 07:24
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Makefile (1)

257-261: ⚠️ Potential issue | 🟠 Major

Update all references to the old build-docker-image target.

The target was renamed to docker-image, but three locations still reference the old name and will fail:

  • recipes/fly.mk:65$(MAKE) build-docker-image must be updated to $(MAKE) docker-image
  • docs/contributing/setting-up-repo.mdx:205 – Update example command
  • docs/contributing/setting-up-repo.mdx:335 – Update example command
🤖 Fix all issues with AI agents
In @.github/workflows/scripts/test-docker-image.sh:
- Around line 52-68: The script currently stops and removes the container before
checking HEALTH_OK, so docker logs in the failure path will be empty; update the
logic around CONTAINER_NAME, HEALTH_OK, and IMAGE_TAG in test-docker-image.sh to
capture/container logs before removing the container (i.e., move or delay the
docker stop/docker rm cleanup until after the failure-path docker logs are
printed), or alternatively only perform container removal when HEALTH_OK
indicates success, and keep the image cleanup (docker rmi IMAGE_TAG)
appropriately gated so logs are available on failure.

@akshaydeo akshaydeo force-pushed the 02-15-adds_docker_test_in_release_pipeline branch from 1499ca5 to 78526a1 Compare February 15, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant