-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add Docker runtime and integration tests #37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add Docker as a third container runtime alongside Podman and Apple
Containerization. The implementation follows the existing baseRuntime
pattern with a Docker-specific parser for handling Docker's NDJSON
output format from `docker ps --format json`.
Changes:
- Add docker.go with runtime implementation and NDJSON parser
- Add comprehensive test suite in docker_test.go
- Update config validation to accept "docker" as runtime.name
- Add RuntimeDocker constant to instance package
- Update root.go with Docker selection logic
- Update documentation across 9 files to include Docker
Configuration:
runtime:
name: docker
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive integration tests using go-internal/testscript: Tests: - version.txtar: basic version command - config.txtar: config viewing and setting - auth_status.txtar: auth status checking (macOS only, skipped on Linux) - run_detached.txtar: full instance lifecycle (create, ps, stop, rm) - kill.txtar: session termination - recreate.txtar: container recreation CI Workflows: - integration-linux-x86.yml: Linux x86_64 with Docker (WarpBuilds) - integration-linux-arm64.yml: Linux ARM64 with Docker (WarpBuilds) - integration-macos-arm64.yml: macOS ARM64 with Apple Containerization (WarpBuilds) Local testing: - just integration-test: run tests with auto-detected runtime - just integration-test-apple: run with Apple Containerization - just integration-test-docker: run with Docker - just integration-test-lima: run Linux tests in ephemeral Lima VM - just integration-test-one <script>: run single test script 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
headjack | 2c3fb7b | Commit Preview URL Branch Preview URL |
Jan 03 2026, 07:39 PM |
…arpBuilds) WarpBuilds macOS runners don't have Apple Containerization installed. Switch to Docker for CI consistency across all platforms. Apple Containerization can still be tested locally with: just integration-test-apple 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The docker/setup-docker-action doesn't exist. Use Homebrew to install Docker CLI and Colima for container runtime. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ble) WarpBuilds macOS runners don't support: - Apple Containerization (not installed) - Colima/Lima VMs (VZ framework fails in CI) macOS integration tests can still be run locally: just integration-test-apple Linux integration tests (x86 and ARM64) run in CI using Docker. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Address code review findings:
- Fix wait_running to use ts.MkAbs(".") to get current directory
(testscript's cd command doesn't update PWD environment variable)
- Replace fixed sleep calls with wait_running for more reliable tests
- Make auth_status test accept either "configured" or "not configured"
to handle machines with existing credentials
- Use unique repo names per test to avoid parallel test conflicts
- Fix DefaultBaseImage registry from jmgilman to gilmanlab
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add io.headjack.docker.flags label support for Docker runtime (previously only Podman and Apple flags were read from image labels) - Fix auth_status test to match actual command output: "not configured", "subscription", "api key", or "configured" - Remove cleanup_containers from parallel tests to prevent race conditions (each test now uses unique repo names so cleanup isn't needed) - Add unit tests for Docker flags extraction 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- setupTestEnv now tries exec.LookPath("hjk") if HJK_BINARY is not set
- wait_running fails early with helpful error if binary not found
- Allows running tests without justfile if hjk is in PATH
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
jmgilman
added a commit
that referenced
this pull request
Jan 3, 2026
Current behavior: Only Podman and Apple Containerization were supported as container runtimes New behavior: Docker is now available as a third container runtime option with full feature parity including image label flags support. Comprehensive integration test suite added using testscript framework with CI workflows for Linux x86 and ARM64. Closes: #37
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
testscriptframeworkChanges
Docker Runtime
DOCKER_HOSTenvironment variableIntegration Tests
Six test scripts covering core CLI functionality:
version.txtar- basic version commandconfig.txtar- configuration viewing and settingauth_status.txtar- auth status checking (macOS only)run_detached.txtar- full instance lifecyclekill.txtar- session terminationrecreate.txtar- container recreationCI Workflows
integration-linux-x86.yml- Linux x86_64 with Docker (WarpBuilds)integration-linux-arm64.yml- Linux ARM64 with Docker (WarpBuilds)integration-macos-arm64.yml- macOS ARM64 with Apple Containerization (WarpBuilds)Local Testing
Test plan
🤖 Generated with Claude Code