This commit fixes CI failures by:
1. Added cargo config setup to all test jobs:
- Ensures correct linkers are configured before running tests
- Uses x86_64-linux-musl-gcc for x86_64 targets
- Uses aarch64-linux-gnu-gcc for ARM64 targets
2. Updated tests to handle cross-compilation gracefully:
- Single-platform tests always use linux/amd64
- Multi-platform tests attempt to build for both architectures
- Tests verify the appropriate error messages if targets are missing
- No tests are skipped - they either pass or fail with expected errors
3. Enhanced CI verification:
- Added verification of aarch64-linux-gnu-gcc availability
- Shows the cargo config being used
This ensures tests run consistently across all environments without skipping.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Support building for multiple platforms with --platform flag
- Accept comma-separated platforms or multiple --platform flags
- Default to building for linux/amd64 and linux/arm64
- Add ARM runner (ubuntu-24.04-arm) to CI matrix
- Create manifest list for multi-arch images (TODO: push to registry)
- Update integration tests to handle multi-platform builds
- Add cross-compilation setup instructions to README
- Add .cargo/config.toml for local development
Breaking changes:
- Default behavior now builds for multiple platforms (amd64+arm64)
- Use --platform linux/amd64 to build for single platform
Remove Windows from the CI matrix to focus on getting Linux and macOS
working reliably first. Windows cross-compilation and Docker support
can be added back once the core functionality is stable.
- Use docker/setup-buildx-action for consistent Docker setup across all platforms
- Fix Windows rust-lld configuration by using full path instead of command name
- Make Docker-dependent tests fail explicitly when Docker is not available
- Add proper Docker availability check in integration tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add detailed error logging for cargo build failures (show both stdout and stderr)
- Install Docker on Windows and macOS CI runners
- Remove continue-on-error from test matrix - tests should fail properly
- Add detailed verification of cross-compilation setup in CI
- Improve Docker availability check in tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove test skipping based on target availability
- Install cross-compilation toolchains for all platforms in CI:
- Ubuntu: musl-tools
- macOS: musl-cross with proper cargo config
- Windows: rust-lld linker
- Update builder to use platform-appropriate linkers
- Make full build/run workflow test mandatory in CI
- Add Docker setup and local registry for integration tests
- Set RUSTFLAGS with --cfg ci to enable CI-specific test behavior
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive e2e tests for build functionality
- Add integration job to CI that tests `docker run $(krust build)`
- Test KRUST_REPO environment variable usage
- Test --no-push flag and clean stdout for command substitution
- Add tests for verbose logging
- Remove outdated basic_test.rs
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
krust builds container images for Rust applications without Docker:
- Builds static binaries using musl libc
- Creates minimal OCI container images
- Pushes to any OCI-compliant registry
- Outputs digest to stdout for composability
Inspired by ko.build for Go applications.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>