Skip to content

feat: add GoReleaser configuration for multi-platform distribution - #1

Closed
timimsms wants to merge 1 commit into
mainfrom
feat/goreleaser-setup
Closed

feat: add GoReleaser configuration for multi-platform distribution#1
timimsms wants to merge 1 commit into
mainfrom
feat/goreleaser-setup

Conversation

@timimsms

Copy link
Copy Markdown
Owner

Summary

  • Adds GoReleaser configuration for automated multi-platform releases
  • Sets up GitHub Actions workflow for release automation
  • Provides foundation for Homebrew, Docker, and direct download distribution

What's Included

  • .goreleaser.yml: Comprehensive configuration for building binaries for all major platforms
  • .github/workflows/release.yml: Automated release workflow triggered by version tags
  • Dockerfile.release: Minimal Alpine-based Docker image
  • Shell completions: Generated completion files for bash, zsh, and fish
  • scripts/release.sh: Helper script for creating version tags
  • Documentation: Setup guide with manual steps required

Manual Steps Required

After merging, you'll need to complete these manual setup steps (documented in docs/RELEASE_SETUP.md):

  1. Create GitHub Secrets:

    • HOMEBREW_TAP_GITHUB_TOKEN - PAT with repo scope for Homebrew tap updates
    • DOCKER_USERNAME & DOCKER_TOKEN - Optional for Docker Hub publishing
    • GPG_FINGERPRINT - Optional for signing releases
  2. Create Homebrew Tap Repository:

    • Create timimsms/homebrew-clickup repository
    • Add Formula directory
    • GoReleaser will auto-update the formula on releases
  3. Docker Hub Setup (Optional):

    • Create Docker Hub repository
    • Add credentials as GitHub secrets

How to Release

Once setup is complete:

# For bug fixes
./scripts/release.sh patch

# For new features  
./scripts/release.sh minor

# For breaking changes
./scripts/release.sh major

Next Steps

This PR completes step 1 of the Phase 3 distribution plan. After merging and completing manual setup:

🤖 Generated with Claude Code

- Add .goreleaser.yml with builds for Linux, macOS, and Windows
- Configure archives with platform-specific formats
- Add GitHub release automation workflow
- Create Dockerfile for containerized distribution
- Add shell completion files for bash, zsh, and fish
- Create release script for version management
- Add initial CHANGELOG.md
- Document manual setup steps in docs/RELEASE_SETUP.md

This sets up the foundation for distributing the CLI via:
- Direct downloads from GitHub releases
- Homebrew tap (requires manual repo setup)
- Docker images (requires Docker Hub credentials)
- Future npm package support

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

Co-Authored-By: Claude <noreply@anthropic.com>
@timimsms

Copy link
Copy Markdown
Owner Author

Superseded by PR #17 which uses the latest GoReleaser v2 syntax with no deprecation warnings and a cleaner release workflow.

@timimsms timimsms closed this Feb 24, 2026
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