Unipipe is a groundbreaking standard for CI/CD and development workflow automation that solves the fundamental challenges of existing pipeline management tools.
Current CI/CD tools suffer from:
- Vendor lock-in
- Complex configuration files
- Limited portability
- Steep learning curves
- Inability to test pipelines locally
- Zero Dependencies: Run anywhere, anytime
- Pure Portability: One script, multiple environments
- Simplicity: Human-readable, machine-executable
- Platform Agnostic: Works with GitHub, GitLab, Jenkins, and beyond
Unipipe uses declarative docblocks to define task execution context and matrix-based configurations.
#!/bin/sh
# @task build
# @trigger pull_request:main
# @requires test
# @env production,staging
# @matrix os=[ubuntu-latest,macos-latest]
# @matrix node=[14,16,18]
# @matrix exclude=[
# {os:macos-latest, node:14}
# ]
build() {
make
}
# @task test
# @trigger always
# @env development,staging,production
test() {
./run-tests.sh
}
# @task deploy
# @trigger push:main
# @requires build,test
# @env production
deploy() {
./deploy-production.sh
}
Primitive | Description | Example |
---|---|---|
@task |
Define task name | @task build |
@trigger |
Specify execution triggers | @trigger push:main pull_request:opened |
@requires |
Define task dependencies | @requires lint test |
@env |
Limit task to specific environments | @env production,staging |
@matrix |
Create combinatorial test/build matrices | @matrix os=[linux,macos] node=[14,16,18] |
Execute tasks directly using standard shell without any additional tooling:
# Execute a specific task locally
sh -c ". ./unipipe.sh && build"
# Run multiple tasks in sequence
sh -c ". ./unipipe.sh && build && test"
# Source the file and run interactively
sh
. ./unipipe.sh
build
Key Benefits:
- Zero dependencies
- Works on any POSIX-compliant system
- No special client required
- Identical execution environment locally and in CI
- Universal Compatibility: Works with any POSIX-compliant environment
- Automatic CI/CD Configuration Generation
- Local and Remote Execution
- No Additional Dependencies
- Advanced Matrix Testing
- Environment-Aware Execution
Generate configuration files for multiple platforms:
# Generate GitHub Actions workflow
unipipe --build github
# Generate GitLab CI configuration
unipipe --build gitlab
Simulate local trigger to debug the pipeline flow
# Execute the pipeline locally as effect of a pull request
unipipe --trigger pull_request
- Full event management
- No additional abstraction layers
- Truly portable across all environments
- Simpler configuration
- Zero runtime dependencies
- Full CI/CD workflow support
- Cloud platform integrations
- Event-driven pipeline management
- Release process automation
- Create
unipipe.sh
in your project - Define your tasks using docblock primitives
- Use the
unipipe
client to execute or generate configurations
- GitHub Actions
- GitLab CI
- Jenkins
- CircleCI
- And more...
We welcome contributions! Help us build the universal pipeline standard.
MIT License
Unipipe aims to become the universal standard for defining, executing, and managing development workflows across all platforms and environments.
Simplify your CI/CD. Embrace Unipipe.