Skip to content

Conversation

agarwalvishal
Copy link

🚀 Overview

Adds a comprehensive CI/CD workflow that automatically builds Claudia for Linux and macOS platforms and creates GitHub releases with downloadable installers.

📋 What This Adds

  • Multi-platform builds: Linux (Ubuntu) and macOS (Apple Silicon)
  • Automated releases: Creates GitHub releases when code is pushed to main
  • Installer packages: .deb, .AppImage (Linux) and .dmg (macOS)
  • Build optimization: Rust and Bun dependency caching
  • Manual testing: workflow_dispatch support for manual runs
  • Error handling: Build log uploads on failure

🔄 Relationship to Existing Workflows

This workflow complements the existing build-test.yml:

  • build-test.yml: Fast CI testing with --no-bundle (existing)
  • build.yml: Production builds with full installers (new)

Both serve different purposes and work together seamlessly.

🏗️ Technical Implementation

  • Aligned dependencies: Uses identical system dependencies as build-test.yml
  • Caching strategy: Implements Rust and Bun caching for faster builds
  • Artifact management: 30-day retention with organized naming
  • Semantic versioning: Uses version from Cargo.toml
  • Security: Proper permissions and conditional release logic

🔧 Platform Support

📦 Release Process

  • Automatic: Triggers on pushes to main branch
  • Manual: Can be triggered via workflow_dispatch for testing
  • Versioning: v{cargo-version}-build{run-number} format
  • Artifacts: All installers attached to GitHub releases

🔍 Testing

  • Builds successfully on Linux and macOS
  • Creates proper installer packages
  • Uploads to GitHub releases correctly
  • Caching works for faster subsequent builds
  • Manual workflow dispatch functions properly

🚧 Known Limitations

  • Windows builds disabled: Due to #83 (icon format + Unix imports)
  • macOS Universal disabled: Missing Intel Claude Code binary
  • Lockfile flag removed: Due to upstream dependency changes (bun.lockb conflicts)

🔮 Future Compatibility

Workflow is designed to automatically support additional platforms:

🎯 Benefits

  • User Experience: Automated, reliable downloads for end users
  • Maintainer Experience: Reduces manual release overhead
  • Quality Assurance: Consistent builds across platforms
  • Scalability: Ready for future platform expansion

📚 Related Issues


Ready for reviewProduction testedFuture-proof

- Add multi-platform build workflow for Linux and macOS
- Include automated GitHub releases with installers
- Support for .deb, .AppImage, and .dmg packages
- Implement caching for faster builds
- Add manual workflow dispatch for testing
- Future-ready for Windows builds (commented out due to getAsterisk#83)
- Align with existing build-test.yml patterns

Resolves need for automated release distribution
Complements existing build-test.yml workflow
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.

2 participants