5.4 KiB
Publication Setup Summary
This document summarizes the publication setup completed for finish.sh.
Files Created
1. Installation Script
docs/install.sh- Enhanced one-line installer with:- Dependency checking
- Shell detection (bash/zsh)
- Color-coded output
- Error handling
- PATH management
- Usage:
curl -sSL <URL>/install.sh | bash
2. Debian Package Structure
Complete Debian packaging in debian/ directory:
control- Package metadata and dependenciesrules- Build instructionschangelog- Version historycopyright- License informationcompat- Debhelper compatibility levelpostinst- Post-installation scriptsource/format- Package format specification
Build command: dpkg-buildpackage -us -uc -b
3. Homebrew Formula
homebrew/finish.rb- Homebrew formula for macOS- Includes dependencies, installation steps, and caveats
- Update SHA256 after creating releases
4. Docker Configuration
Dockerfile- Production container imageDockerfile.test- Testing container with BATSdocker-compose.yml- Multi-service Docker setup.dockerignore- Excludes unnecessary files from builds
5. GitHub Actions Workflows
CI/CD automation in .github/workflows/:
test.yml- Runs tests on every push/PRrelease.yml- Creates releases and builds packagesdocker.yml- Builds and publishes Docker images
6. Documentation
PUBLISHING.md- Comprehensive publishing guideREADME.md- Updated with installation methods.gitignore- Updated to exclude build artifacts
Distribution Channels
1. Quick Install (Recommended)
curl -sSL https://git.appmodel.nl/Tour/finish/raw/branch/main/docs/install.sh | bash
2. Debian/Ubuntu Package
Users can install the .deb file:
sudo dpkg -i finish_*.deb
sudo apt-get install -f
Or from an APT repository (when configured):
sudo apt-get install finish
3. Homebrew (macOS)
brew tap closedloop-technologies/finish
brew install finish
4. Docker
docker pull ghcr.io/closedloop-technologies/finish:latest
docker run -it ghcr.io/closedloop-technologies/finish:latest
5. From Source
git clone https://git.appmodel.nl/Tour/finish.git
cd finish
./finish.sh install
Next Steps
Immediate Actions
- Test the installation script on clean systems
- Build and test the Debian package:
dpkg-buildpackage -us -uc -b sudo dpkg -i ../finish_*.deb - Test Docker builds:
docker build -t finish:test . docker run -it finish:test
For First Release
-
Update version numbers in:
finish.sh(line 34)debian/changeloghomebrew/finish.rbdocs/install.shDockerfile
-
Create release tarball:
git archive --format=tar.gz --prefix=finish-0.5.0/ v0.5.0 > finish-0.5.0.tar.gz -
Calculate SHA256 for Homebrew:
sha256sum finish-0.5.0.tar.gz -
Create and push tag:
git tag -a v0.5.0 -m "Release v0.5.0" git push origin v0.5.0This triggers GitHub Actions to build everything automatically.
Setting Up Package Repositories
APT Repository Options:
-
Packagecloud (easiest):
- Sign up at https://packagecloud.io
- Upload .deb file
- Users get one-line install
-
GitHub Pages (free):
- Use
repreproto create repository - Host on GitHub Pages
- Users add your repository to sources
- Use
See PUBLISHING.md for detailed instructions.
Homebrew Tap:
- Create GitHub repo:
homebrew-finish - Add formula to
Formula/finish.rb - Users install with:
brew tap yourname/finish && brew install finish
Testing Checklist
Before releasing:
- Test install script on Ubuntu 22.04
- Test install script on Debian 12
- Test install script on macOS
- Build Debian package successfully
- Install and test Debian package
- Build Docker image successfully
- Run BATS tests in Docker
- Test Homebrew formula (if applicable)
- Verify all version numbers match
- Test GitHub Actions workflows
Automation
The GitHub Actions workflows handle:
- On every push/PR: Run tests, lint code, build Docker images
- On version tag push: Build packages, create release, publish Docker images
This means once set up, releasing a new version is as simple as:
git tag -a v0.5.1 -m "Release v0.5.1"
git push origin v0.5.1
Everything else happens automatically!
Support Channels
Consider setting up:
- GitHub Issues for bug reports
- GitHub Discussions for Q&A
- Documentation website (GitHub Pages)
- Discord/Slack community (optional)
Resources
- Debian Packaging Guide: https://www.debian.org/doc/manuals/maint-guide/
- Homebrew Formula Cookbook: https://docs.brew.sh/Formula-Cookbook
- GitHub Actions Documentation: https://docs.github.com/en/actions
- Docker Best Practices: https://docs.docker.com/develop/dev-best-practices/
Conclusion
Your project is now fully set up for publication with:
- ✅ One-line installation script
- ✅ Debian/Ubuntu package support
- ✅ Homebrew formula for macOS
- ✅ Docker containers
- ✅ Automated CI/CD with GitHub Actions
- ✅ Comprehensive documentation
All distribution channels are ready. Follow the "Next Steps" section above to test and publish your first release!