Skip to content

feat: Migrate from Spin registry to wkg publishing for standardized WebAssembly distribution#4

Merged
DevOpsDali merged 6 commits into
mainfrom
feat/wkg-migration
Jul 20, 2025
Merged

feat: Migrate from Spin registry to wkg publishing for standardized WebAssembly distribution#4
DevOpsDali merged 6 commits into
mainfrom
feat/wkg-migration

Conversation

@DevOpsDali
Copy link
Copy Markdown
Member

Summary

  • Complete migration from Spin registry publishing to wkg (WebAssembly Package Tools) for improved standardization and cross-language compatibility
  • Successfully tested wkg publishing with all 84 tools and validated Spin compatibility with proper source format
  • Enhanced release workflow with cosign signing for security and comprehensive error handling
  • Maintained backward compatibility while standardizing on OCI registry patterns

Key Changes

  • 🚀 WKG Publishing: Replaced spin registry push with wkg oci push for all 84 tools
  • 🔐 Security: Added cosign signing for all published components (both version and latest tags)
  • 🔄 Authentication: Migrated to docker/login-action@v3 for reliable GHCR authentication
  • 📋 Registry Format: Updated Spin source format to { registry = "ghcr.io", package = "namespace:name", version = "tag" }
  • 🧹 Production Ready: Removed all test artifacts, branch triggers, and development-specific code

Test Plan

  • Successfully published single tool (add) via wkg and validated Spin consumption
  • Expanded to all 84 tools with batch processing for scalability
  • Verified cosign signing works for both version and latest tags
  • Confirmed docker/login-action@v3 resolves authentication issues
  • Validated proper Spin registry source format prevents consumption errors
  • Tested complete workflow end-to-end on feat/wkg-migration branch
  • Removed all testing artifacts for production deployment

Technical Validation

  • Component Publishing: All 84 tools publish successfully to GHCR via wkg
  • Spin Compatibility: Validated Spin can consume wkg-published components with proper source format
  • Security: cosign signing implemented for component authenticity
  • Performance: Maintains fast parallel builds with optimized batching
  • Error Handling: Comprehensive validation and graceful failure modes

🤖 Generated with Claude Code

Echo and others added 6 commits July 19, 2025 21:25
- Implements docker/login-action@v3 for reliable GHCR authentication
- Default dry run mode for safe testing
- Manual workflow dispatch only (no automatic triggers)
- Includes cosign signing and metadata tagging
- Tests Spin compatibility with published components
- Based on WebAssembly/wasi-http publishing pattern

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Added test-wkg-publish job to release.yml based on WASI-HTTP pattern
- Temporarily disabled Spin publishing in publish-all-tools job
- Added feat/wkg-migration branch trigger for testing
- Added test_wkg input for manual workflow dispatch
- Removed separate wkg-test.yml as functionality is now integrated
- Uses docker/login-action@v3 for reliable GHCR authentication
- Includes cosign signing and Spin consumption validation

Testing approach:
- Push to feat/wkg-migration branch will trigger wkg test automatically
- Or use workflow_dispatch with test_wkg=true

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add special handling for feat/wkg-migration branch
- Use test version v0.0.0-wkg-test when triggered by branch push
- Skip version format validation for test branch
- Prevents workflow failure when not triggered by tag

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Split registry URL into separate registry, package, and version fields
- Format: { registry = "ghcr.io", package = "namespace:name", version = "tag" }
- Matches Spin's ComponentSource enum structure
- Added debug output to show parsed values
- Print spin.toml on failure for debugging

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Replace publish-all-tools job with wkg-based publishing
- Publish all tools individually with version and latest tags
- Add cosign signing for every published component
- Include WASM file validation and error handling
- Add Spin compatibility test for wkg-published components
- Remove all disabled Spin publishing code
- Enhanced logging and summary reporting

Migration Benefits:
- Standard WebAssembly component publishing via OCI
- Better cross-language compatibility
- Industry-standard artifact format
- Maintained Spin consumption capability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Production cleanup:
- Remove test_wkg input and branch triggers
- Remove development-specific version handling
- Remove Spin compatibility test job (proven working)
- Restore proper version validation for production releases
- Update workflow description and summary for wkg publishing
- Clean up all temporary testing comments

Ready for production deployment:
- Publishes all 84+ tools via wkg to GHCR
- Cosign signing for all components
- Proper semver validation
- Professional release artifacts documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@DevOpsDali DevOpsDali merged commit 3903659 into main Jul 20, 2025
9 checks passed
@DevOpsDali DevOpsDali deleted the feat/wkg-migration branch July 20, 2025 05:44
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