π Pin Documentation
Welcome to the comprehensive documentation for Pin - a local pipeline tool with Docker integration and daemon mode support.
π Documentation Index
π Getting Started
- Main README - Overview, installation, and quick start
- Examples - Practical examples for different scenarios
- Use Cases - Real-world applications and workflows
π Reference
π― Quick Navigation
For Beginners
- Start with the Main README to understand what Pin is
- Check out Examples for basic usage patterns
- Reference Troubleshooting if you encounter issues
For Advanced Users
- Explore Use Cases for complex workflow ideas
- Use API Reference for daemon mode integration
- Check Examples for advanced configuration patterns
For Integrators
- Study API Reference for HTTP API integration
- Review Use Cases for CI/CD integration patterns
- Reference Examples for automation scripts
π§ Core Concepts
Pipeline Configuration
Pin uses YAML configuration files to define workflows:
workflow:
- build
- test
- deploy
build:
image: golang:1.21-alpine
copyFiles: true
script:
- go build -o app .
test:
image: golang:1.21-alpine
copyFiles: true
script:
- go test ./...
deploy:
image: alpine:latest
condition: $BRANCH == "main"
script:
- echo "Deploying to production"
Key Features
- Local Execution: Run pipelines on your local machine
- Docker Integration: Consistent environments using containers
- Daemon Mode: Long-running service with HTTP API
- Real-time Monitoring: Server-Sent Events for live pipeline updates
- Conditional Execution: Run jobs based on environment conditions
- Retry Mechanism: Automatic retry with exponential backoff
- Parallel Jobs: Execute multiple jobs simultaneously
π Popular Examples
Quick Start
# Install Pin
go install github.com/muhammedikinci/pin/cmd/cli@latest
# Run a simple pipeline
pin apply -f pipeline.yaml
# Start daemon mode
pin apply --daemon
Common Use Cases
- Development: Consistent local development environments
- Testing: Automated testing across different configurations
- CI/CD: Build, test, and deployment automation
- Data Processing: ETL pipelines and batch jobs
π€ Contributing
Pin is an open-source project. Contributions are welcome!
π Support
Need help? Check these resources:
- Documentation: Youβre here! Browse the guides above
- Examples: Practical examples in the examples section
- Troubleshooting: Common issues in troubleshooting
- GitHub Issues: Report bugs or ask questions
- Discussions: Community discussions and feature requests
Happy pipelining with Pin! π₯